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

Reply via email to