llvm-project
ecb242cd - [GlobalISel] Don't set disjoint flag in lowerRotate unless the rotate amount is non-zero modulo the bitwidth. (#236993)

Commit
15 days ago
[GlobalISel] Don't set disjoint flag in lowerRotate unless the rotate amount is non-zero modulo the bitwidth. (#236993) If the bit width is a power of 2 and the shift amount is zero modulo the bitwidth, the left and right shift produce the same value so the Or is not disjoint. For the non-power of 2 lowering, we make sure to produce 0 in one of the shifts when the rotate amount is zero modulo the bit width. This keeps the Or disjoint. We can't allow any element of the shift amount to be undef because the disjoint flag produces poison which is stronger than undef. Fixes #236025. Assisted-by: Claude
Author
Parents
Loading