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

            Bug ID: 121592
           Summary: [16 Regression] RISC-V: Miscompile at -O3 since
                    r16-2788-gdf86ac52fcc
           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 short a;
char b;
void c(short m[], unsigned char p[][24][24], unsigned q[][24]) {
  for (long r = 0; r < 3; r = 7)
    for (unsigned s = 0; s < 4; s = ~02)
      for (unsigned char u = 2; u < (unsigned char)m[r] - 196; u += -254)
        for (int w = 0; w < 24; w += 2) {
          a += p[1][u][1] ?: m[s];
          b = q[u + 1][s];
        }
}
long long seed;
short m[24];
unsigned char p[24][24][24];
unsigned q[4][24];
int main() {
  for (int r = 0; r < 24; ++r)
    m[r] = -12326;
  for (int r = 0; r < 4; ++r)
    for (int s = 0; s < 4; ++s)
      for (int t = 0; t < 4; ++t)
        p[r][s][t] = 1;
  c(m, p, q);
  seed ^= a;
  seed ^= b;
  __builtin_printf("%llu\n", seed);
}


Commands:
# -O3
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
>  -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
31868

# -O2
> /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
>  -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
45060

Bisected to r16-2788-gdf86ac52fcc as the first bad commit

Found via fuzzer.

Reply via email to