[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