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.