https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114668
Bug ID: 114668 Summary: [14] RISC-V rv64gcv: miscompile at -O3 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: char a; int b; short e[14]; char f[4][12544]; _Bool c[4][5]; int main() { for (int i = 0; i < 4; ++i) for (int l = 0; l < 15; ++l) for (int m = 0; m < 15; ++m) f[i][l * m] = 3; for (int j = 0; j < 4; j += 1) for (int k = 3; k < 13; k += 3) for (_Bool l = 0; l < 1; l = 1) for (int m = 0; m < 4; m += 1) { a = 0; b -= e[k]; c[j][m] = f[j][6]; } for (long i = 2; i < 4; ++i) __builtin_printf("%X\n", c[3][3]); } Commands: > /scratch/tc-testing/tc-apr-9/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64gcv -O3 red.c -o red.out > /scratch/tc-testing/tc-apr-9/build-rv64gcv/bin/qemu-riscv64 red.out 1 FF > /scratch/tc-testing/tc-apr-9/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64gcv -O2 red.c -o red.out > /scratch/tc-testing/tc-apr-9/build-rv64gcv/bin/qemu-riscv64 red.out 1 1 Adjusting the f array to its minimal size of f[4][255] makes the issue go away. Looks similar to pr114665 so this might be a duplicate/related. Submitting this bug in case it's easier to understand the root cause. Found via fuzzer.