faa35fc87370 fix the case of negative input shift. But when c1, c2 is not the same side, it will also cause negative shift amount.
And that negative shift amount can't normalize by urem. So add one more bit size to normalize the last shift amount.
Details
Details
- Reviewers
RKSimon - Commits
- rGbe7d0d6db509: [DAGCombiner] Fix issue with rot chain pattern
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
100 ms | x64 debian > LLVM.CodeGen/AArch64::rotate.ll |
Event Timeline
Comment Actions
Please can you rebase? I've updated the tests so the patch should just show the codegen diff
Comment Actions
LGTM with one minor - cheers
llvm/test/CodeGen/AArch64/rotate.ll | ||
---|---|---|
19–35 | ;; This used to cause a miscompile because rot combine |
;; This used to cause a miscompile because rot combine