https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121126

            Bug ID: 121126
           Summary: [16 Regression] RISC-V: Miscompile at -O[23] since
                    r16-2159-g3bf2aa834e1
           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;
unsigned b;
void c(int e, int r[], unsigned s[][11][11]) {
  for (int u = -(e ? 2000424973 : 0) - 2294542319; u < 7; u += 4)
    for (int x = 0; x < 300000011; x += 4)
      for (int y = 0; y < (0 < s[u][4][1]) + 11; y += 3) {
        a = a ?: 1;
        b = r[2];
      }
}
long long ab;
int e = 1;
int r[11];
unsigned s[11][11][11];
int main() {
  for (int t = 0; t < 11; ++t)
    r[t] = 308100;
  c(e, r, s);
  ab = b;
  __builtin_printf("%llu\n", ab);
}

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
0

# -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
0

# -O1
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
>  -march=rv64gcv -flto -O1 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
308100

Found via fuzzer

Reply via email to