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

            Bug ID: 120357
           Summary: [16 Regression] RISC-V: ICE in vect pass "error:
                    definition in block 9 does not dominate use in block
                    3"
           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: ---

Created attachment 61471
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61471&action=edit
freport-bug output

Testcase:
char a;
void b(int d, int o, unsigned long long t[][22], int u[]) {
  for (int v = 0; v < d + 1488232569; v += o + 952017568)
    for (_Bool w = 0; w < (u[v] < 0) + 1; w = 1)
      a *= 0 != t[w][v];
}
int d = 5780825713192689565;
int o = 3342949729;
unsigned long long t[2][22];
int u[2];
int main() {
  b(d, o, t, u);
}

Commands:
$
/scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
-I/scratch/ewlu/ci/compiler-fuzz-ci/csmith-build/include -fsigned-char
-fno-strict-aliasing -fwrapv -march=rv64gcv_zvl256b -fwhole-program -O3 red.c
-o rv64gcv.out -w -freport-bug
red.c: In function 'main':
red.c:11:5: error: definition in block 9 does not dominate use in block 3
   11 | int main() {
      |     ^~~~
for SSA_NAME: mask__36.15_83 in statement:
_102 = VEC_COND_EXPR <mask__36.15_83, _101, ivtmp_99>;
during GIMPLE pass: vect
red.c:11:5: internal compiler error: verify_ssa failed
0x31772b6 internal_error(char const*, ...)
        ../../../gcc/gcc/diagnostic-global-context.cc:517
0x17075bf verify_ssa(bool, bool)
        ../../../gcc/gcc/tree-ssa.cc:1203
0x1339155 execute_function_todo
        ../../../gcc/gcc/passes.cc:2108
0x13395ee execute_todo
        ../../../gcc/gcc/passes.cc:2155
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/ccVIenpc.out file, please attach this to
your bugreport.

Godbolt: https://godbolt.org/z/YdKh9ed87

Original fuzzer command used -flto but -fwhole-program also causes the ICE

Found via fuzzer.

Reply via email to