https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120522
Bug ID: 120522
Summary: [16 Regression] RISC-V: Miscompile at -O3 since
r16-449-gd884e9c5c74
Product: gcc
Version: 16.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 ao;
short g = 29461;
unsigned i = 6;
unsigned l = 8;
char y[23];
unsigned char ac[23][23][23][23][23];
char aq[23][3];
char ar;
void b(short g, unsigned i, unsigned l, char y[], unsigned char
ac[][23][23][23][23]) {
for (unsigned ag = 0; ag < 23; ag++)
for (short ah = 0; ah < 3; ah = l)
for (unsigned ai = 0; ai < 23; ai++)
for (unsigned aj = 0; aj < y[ag] - 98; aj += 3)
for (short ak = 0; ak < (short)(ac[ag][ah][6][ai][aj] + i); ak += g -
29460)
a += 6;
}
int main() {
for (int af = 0; af < 23; ++af)
y[af] = 121;
for (int af = 0; af < 23; ++af)
for (int at = 0; at < 3; ++at)
aq[0][at] = ar;
b(g, i, l, y, ac);
ao = a + 9;
__builtin_printf("%llu\n", ao);
}
Commands
# -O3
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
> -march=rv64gcv -flto -O3 red.c -o user-config.out -fsigned-char
> -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,zve64f=true
> timeout --verbose -k 0.1 4
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out
> 1
146
# -O2
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
> -march=rv64gcv -flto -O2 red.c -o user-config.out -fsigned-char
> -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,zve64f=true
> timeout --verbose -k 0.1 4
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out
> 1
41
Found via fuzzer