[all-commits] [llvm/llvm-project] 578008: [DAG] Extend SearchForAndLoads with any_extend han...

David Green via All-commits all-commits at lists.llvm.org
Mon Jan 17 07:25:24 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 578008789fd061a88ce47dac6ff627001b404348
      https://github.com/llvm/llvm-project/commit/578008789fd061a88ce47dac6ff627001b404348
  Author: David Green <david.green at arm.com>
  Date:   2022-01-17 (Mon, 17 Jan 2022)

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

  Log Message:
  -----------
  [DAG] Extend SearchForAndLoads with any_extend handling

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.

Differential Revision: https://reviews.llvm.org/D117457




More information about the All-commits mailing list