[DAG] Enable ISD::FSHL/R SimplifyMultipleUseDemandedBits handling inside SimplifyDema...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 12 Jun 2022 17:56:24 +0000 (18:56 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 12 Jun 2022 18:25:20 +0000 (19:25 +0100)
commit1cf9b24da3b8eb8e7636de2209f192ded5ce20cd
tree456525460b2d1473aa2bb8678f555bdbbdeea820
parent4dd1bffc9dac02b34bd1de78808edd9a5955c987
[DAG] Enable ISD::FSHL/R SimplifyMultipleUseDemandedBits handling inside SimplifyDemandedBits

This patch allows SimplifyDemandedBits to call SimplifyMultipleUseDemandedBits in cases where the source operand has other uses, enabling us to peek through the shifted value if we don't demand all the bits/elts.

This helps with several of the regressions from D125836
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/test/CodeGen/PowerPC/urem-seteq-illegal-types.ll
llvm/test/CodeGen/X86/clear_upper_vector_element_bits.ll
llvm/test/CodeGen/X86/const-shift-of-constmasked.ll
llvm/test/CodeGen/X86/funnel-shift.ll
llvm/test/CodeGen/X86/rotate-extract.ll
llvm/test/CodeGen/X86/sdiv_fix_sat.ll
llvm/test/CodeGen/X86/shift-mask.ll