Otherwise we have garbage in the upper bits that can affect the
results of the UREM.
Fixes PR55296.
Paths
| Differential D125076
[SelectionDAG] Clear promoted bits before UREM on shift amount in PromoteIntRes_FunnelShift. ClosedPublic Authored by craig.topper on May 6 2022, 12:12 AM.
Details Summary Otherwise we have garbage in the upper bits that can affect the Fixes PR55296.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.May 6 2022, 1:06 AM craig.topper retitled this revision from [SelectionDAG] Clear promoted bits before UREM on shift amount in PromoteIntRes_Rotate. to [SelectionDAG] Clear promoted bits before UREM on shift amount in PromoteIntRes_FunnelShift..May 6 2022, 8:57 AM
This revision was landed with ongoing or failed builds.May 6 2022, 9:26 AM Closed by commit rG76f90a9d71ee: [SelectionDAG] Clear promoted bits before UREM on shift amount in… (authored by craig.topper). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 427662 llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
llvm/test/CodeGen/AArch64/funnel-shift.ll
llvm/test/CodeGen/AMDGPU/fshr.ll
llvm/test/CodeGen/ARM/funnel-shift.ll
llvm/test/CodeGen/Mips/funnel-shift.ll
llvm/test/CodeGen/PowerPC/funnel-shift.ll
llvm/test/CodeGen/X86/funnel-shift.ll
|
Like other shifts/rotates, the shift amount for funnel shifts isn't required to match the data type is it? Should this be checking that the argument needs to be promoted first?