https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118154
Bug ID: 118154 Summary: [15 Regression] RISC-V: Miscompile with -march=rv64gcv -O3 since 15-5117-g0b27a7dd050 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: long a; signed char b; long long d; signed char c[22][22][484]; void m(long long *l, int n) { *l ^= n + (*l >> 2); } int main() { signed char l = 35; for (signed char f = 4; f; f++) { for (signed g = 0; g < 022; g += 4) for (signed char h = 0; h < 022; h++) { c[9][g][h * 22 + h] = l; a = ({ a > 4095 ? a : 4095; }); } for (int i = 0; i < 22; i += 3) for (signed char j = 1; j; j++) for (signed char k = 0; k < 022; k++) b = ({ b > 19 ? b : 19; }); } for (long f = 0; f < 22; ++f) for (long g = 0; g < 22; ++g) for (long h = 0; h < 22; ++h) for (long i = 0; i < 22; ++i) m(&d, c[f][g][h * 2 + i]); if (d != 38) return 1; } Commands: /scratch/tc-testing/tc-compiler-fuzz-bisect/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O3 test.c -o user-config.out -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 Found via fuzzer First bad commit: r15-5117-g0b27a7dd050