Issue 107891
Summary [RISC-V] Miscompile with RISC-V Vector Peephole Optimization
Labels new issue
Assignees
Reporter patrick-rivos
    Testcase:
```c
long b;
long c[5];
int d[25];
int main() {
  for (long g = 3; g < b + 23; g += 4)
    d[g] = g * g ?: c[g];
  __builtin_printf("%u\n", d[3]);
}
```
Commands:
```
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/clang -march=rv64gcv -O3 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv
> QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve32x=true,zve64d=true,zve64f=true,zve64x=true timeout --verbose -k 0.1 4 /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/qemu-riscv64 user-config.out
4294967295

> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/clang -march=rv64gcv -O3 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv -mllvm -opt-bisect-limit=131
...
BISECT: running pass (131) RISC-V DAG->DAG Pattern Instruction Selection on function (main)
BISECT: NOT running pass (132) RISC-V Vector Peephole Optimization on function (main)
...
> QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve32x=true,zve64d=true,zve64f=true,zve64x=true timeout --verbose -k 0.1 4 /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/qemu-riscv64 user-config.out
9
```

-opt-bisect-limit points to `RISC-V Vector Peephole Optimization`

Found via fuzzer. First detected on a build from the 6th of September.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to