https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118950
Bug ID: 118950 Summary: [14/15 regression] RISC-V: rv64gcv runtime mismatch at -O3 since r14-4038-gb975c0dc3be Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ewlu at rivosinc dot com Target Milestone: --- testcase: unsigned char a; long long r; _Bool h = 1; short j[23]; _Bool k[3][23]; void b(_Bool h, short j[], _Bool k[][23]) { for (int m = 0; m < 23; m += 3) for (short n = 0; n < 22; n += 4) a = ({ unsigned char o = a; unsigned char p = j[n] ? h : k[m][n]; o > p ? o : p; }); } int main() { for (int m = 0; m < 23; ++m) j[m] = 10; b(h, j, k); r = a; __builtin_printf("%llu\n", r); } commands: > ./bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -flto -O3 red.c -o > user-config.out > QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true > /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 > user-config.out 1 255 > ./bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -flto -O2 red.c -o > user-config.out > QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true > /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 > user-config.out 1 1 x86 also outputs 1 bisected to r14-4038-gb975c0dc3be as the first bad commit tried inlining the function b but the error disappears when doing so. found via fuzzer.