[all-commits] [llvm/llvm-project] f4615f: Revert "[DAG] Extend SearchForAndLoads with any_ex...

Hans via All-commits all-commits at lists.llvm.org
Tue Jan 18 01:56:00 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4615feaa1fb686b12db518299a372d0c99824ae
      https://github.com/llvm/llvm-project/commit/f4615feaa1fb686b12db518299a372d0c99824ae
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2022-01-18 (Tue, 18 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:
  -----------
  Revert "[DAG] Extend SearchForAndLoads with any_extend handling"

This caused builds to fail with

  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:5638:
  bool (anonymous namespace)::DAGCombiner::BackwardsPropagateMask(llvm::SDNode *):
  Assertion `NewLoad && "Shouldn't be masking the load if it can't be narrowed"' failed.

See the code review for a link to a reproducer.

> 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

This reverts commit 578008789fd061a88ce47dac6ff627001b404348.




More information about the All-commits mailing list