https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114485
Bug ID: 114485 Summary: [14] Wrong code with -O3 -march=rv64gcv on riscv Product: gcc Version: 14.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: int b, c = 8, d; int e[23]; int main() { int *h = e; for (int i = 1; i < b + 21; i += 2) { c *= -1; d = h[i] ? i : 0; } __builtin_printf("%u\n", c); } Commands > /scratch/tc-testing/tc-mar-25/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64gcv -O3 red.c -o red.out > /scratch/tc-testing/tc-mar-25/build-rv64gcv/bin/qemu-riscv64 red.out 4294967288 > /scratch/tc-testing/tc-mar-25/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64gcv -O2 red.c -o red.out > /scratch/tc-testing/tc-mar-25/build-rv64gcv/bin/qemu-riscv64 red.out 8 This is likely a duplicate of pr114476 (but this testcase does not require -fwrapv). Found via fuzzer