https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110496
Bug ID: 110496
Summary: ICE: tree check: expected none of vector_type, have
vector_type in find_bswap_or_nop_1, at
gimple-ssa-store-merging.cc:654
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: sirl at gcc dot gnu.org
Target Milestone: ---
This testcase (reduced with cvise):
long contents, f_num;
int decide();
int f_MV0__x;
void f() {
unsigned char *rptr;
unsigned char valbuf[6];
rptr = (unsigned char *)contents;
if (decide())
do {
__builtin_memcpy(valbuf, &f_MV0__x, sizeof(int));
(&valbuf[0])[4] = (&valbuf[0])[5] = 0;
} while (0);
else {
int MV0__x = f_num;
__builtin_memcpy(valbuf, &MV0__x, sizeof(int));
(&valbuf[0])[4] = (&valbuf[0])[5] = 0;
}
rptr[1] = valbuf[4];
rptr[2] = valbuf[5];
rptr[4] = valbuf[1];
rptr[5] = valbuf[2];
__builtin_memset(valbuf, 0, 8);
}
ICEs with gcc@r14-2190:
during GIMPLE pass: store-merging
testcase.c: In function 'f':
testcase.c:4:6: internal compiler error: tree check: expected none of
vector_type, have vector_type in find_bswap_or_nop_1, at
gimple-ssa-store-merging.cc:654
4 | void f() {
| ^
0x921335 tree_not_check_failed(tree_node const*, char const*, int, char const*,
...)
../../gcc/tree.cc:8936
0x11175d8 tree_not_check(tree_node*, char const*, int, char const*, tree_code)
../../gcc/tree.h:3581
0x11175d8 find_bswap_or_nop_1
../../gcc/gimple-ssa-store-merging.cc:654
0x17c6758 process_store
../../gcc/gimple-ssa-store-merging.cc:5269
0x17c6758 execute
../../gcc/gimple-ssa-store-merging.cc:5557