tree e17c0601d5a43dd01ce04963bd4a1b64558bb2a8
parent 9d7eb9f77d4adcffc2c64a01100ea5f0f6ceafee
author Han-Chung Wang <hanhan0912@gmail.com> 1727110765 -0700
committer GitHub <noreply@github.com> 1727110765 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJm8Z5uCRC1aQ7uu5UhlAAAPScQAASg4uEoW4+Qc8YPq+5dHcZU
 bBW2P2S3n6J/2AtbVMU1dc1hT7oo536V+RhIUuP22MCnQgvZfCneWxZLPmY5nEOS
 BEysYJ41/4+oH8q7dSDJKxFdkoS1U0TwfTaHLsfIzfp++wgp4HswgFSGy2uQHzF4
 7pkfRvk0i+g6+tgCtpbuIXJ6Xt9bMz0emWKnLqW3hcvypoJvu/aYUsPz/gUNOIE/
 LV8/8b0oF3jOKl4PuQ7F1C5M2AJTgGcKFhAsCWVInAIa2K9nmPkl7rKl8GGr5lcs
 vuDtyXLikcNYLo37VV4ZOIW0mc+C66Ttnxoi2VnANlrQVAgixTe0Y/hYgdqX7ab5
 eU881Jt/o0Zi8IFyltDtagXvTAJTswjoh7mKFcklXpLRaHCcC9lGCj9BM9bTb37j
 /3F71solJCQ5InKbgthtQsZ1OmnpH2Zp/VYTHYSNdZuOX07dc3NrQ0upRprTk5TX
 /3lxDMEL20XKMje6wBlSw5cxJff+pamB/1irefk968xFps5/qbZcNV2Maayml2fm
 oLZ/uvU8Ff19mi2M4wOrqwi1RGsXCArykONXOJJsiNTHzgFR6y5yl1Ba/ARV/R0J
 xjgP4XNFypyB+fPyx2jdYWoMRusDj9HbcFJl5+IjrJVs6pfiQUeli+FtsOZbbKaU
 6loH7++iXk21kpmVawlR
 =EMse
 -----END PGP SIGNATURE-----
 

[GPU][DT] Add support for materializing tensor.empty and linalg.fill ops (#18563)

The revisions moves the materialization patterns of tensor.empty and
linalg.fill to "populateShapeIndependentMaterializeEncodingPatterns"
set; updates the comments. This set of patterns lower the ops with
encodings to the same op with materialized types.

It adds the tile swizzle shape inference to the tensor.empty pattern and
moves the utility to the "Utility methods" section without changes.

This is a step towards https://github.com/iree-org/iree/issues/18554

---------

Signed-off-by: hanhanW <hanhan0912@gmail.com>