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

Reply via email to