Issue |
141098
|
Summary |
[RISC-V] Miscompile on -O3 with -flto
|
Labels |
new issue
|
Assignees |
|
Reporter |
ewlu
|
Testcase:
```c
int seed;
int g = 1667522066;
int a = 1;
signed char q[23][23][23];
int main() {
for (int r = 0; r < 23; ++r)
for (int s = 0; s < 23; ++s)
for (int t = 0; t < 23; ++t)
q[r][s][t] = 3;
for (char r = 0; r < 23; r += 4)
for (int s = 0; s < 19; s += 4)
for (int t = 0; t < 23; t += g + 5956943230692729329)
a *= 0 < q[s][t][t];
seed = a;
__builtin_printf("%d\n", seed);
}
```
Commands:
```
# -O3
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv_zvl256b -flto -O3 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv
$ QEMU_CPU=rv64,vlen=256,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true timeout --verbose -k 0.1 4 /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out 1
0
# -O2
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv_zvl256b -flto -O2 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv
$ QEMU_CPU=rv64,vlen=256,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true timeout --verbose -k 0.1 4 /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out 1
1
```
Bisected to d067014f13871642888afde850cdc558c32f350c as the first bad commit
Found via fuzzer
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs