[PATCH] D117457: [DAG] Extend SearchForAndLoads with any_extend handling

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 17 00:42:27 PST 2022


dmgreen created this revision.
dmgreen added reviewers: niravd, samparker, spatel, bjope, RKSimon.
Herald added subscribers: ecnelises, pengfei, hiraditya.
dmgreen requested review of this revision.
Herald added a project: LLVM.

This extends the code in SearchForAndLoads to be able to look through ANY_EXTEND nodes, which can be created from mismatching IR types where the AND node we begin from only demands the low parts of the register. That turns zext and sext into any_extends as only the low bits are demanded. To be able to look through ANY_EXTEND nodes we need to handle mismatching types in a few places, potentially truncating the mask to the size of the final load.


https://reviews.llvm.org/D117457

Files:
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/test/CodeGen/AArch64/combine-andintoload.ll
  llvm/test/CodeGen/X86/pr35763.ll
  llvm/test/CodeGen/X86/pr35765.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D117457.400454.patch
Type: text/x-patch
Size: 13255 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220117/c8053af2/attachment.bin>


More information about the llvm-commits mailing list