[llvm] [VPlan] Simplify pow-of-2 (mul|udiv) -> (shl|lshr) (PR #172477)
Alex Bradbury via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 6 02:59:12 PST 2026
asb wrote:
I've reverted this in #174559 as it's causing failures for RVA23. [Here](https://gist.github.com/asb/16655a24e32449fd11f54f904385f1fa) is the miscompiled gcc-stdarg-3.c from the llvm-test-suite where an illegal transform happens:
```
- sh3add a1, a4, a1
+ addi a1, a1, 64
```
Similar in minisat:
```diff
--- build.rva23-good/MultiSource/Applications/minisat/CMakeFiles/minisat.dir/Solver.s 2026-01-06 10:42:09.270790638 +0000
+++ build.rva23-bad/MultiSource/Applications/minisat/CMakeFiles/minisat.dir/Solver.s 2026-01-06 10:42:51.325471663 +0000
@@ -1202,11 +1202,11 @@
vsetvli a1, a0, e64, m2, ta, ma
vmv.x.s a2, v10
vle64.v v12, (a2)
+ addi s7, s7, 64
vmv.x.s a2, v8
sub a0, a0, a1
- sh3add s7, a1, s7
vse64.v v12, (a2)
- sh3add s6, a1, s6
+ addi s6, s6, 64
bnez a0, .LBB5_26
# %bb.27: # %middle.block
# in Loop: Header=BB5_7 Depth=2
```
https://github.com/llvm/llvm-project/pull/172477
More information about the llvm-commits
mailing list