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

            Bug ID: 111136
           Summary: ICE in RISC-V test case since r14-3441-ga1558e9ad85693
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rdapp at gcc dot gnu.org
  Target Milestone: ---
            Target: riscv

The following RISC-V test case ICEs since r14-3441-ga1558e9ad85693
(mask_gather_load-11.c)

#define uint8_t unsigned char

void
foo (uint8_t *restrict y, uint8_t *restrict x,
     uint8_t *index,
     uint8_t *cond)
{
  for (int i = 0; i < 100; ++i)
    {
      if (cond[i * 2])
        y[i * 2] = x[index[i * 2]] + 1;
      if (cond[i * 2 + 1])
        y[i * 2 + 1] = x[index[i * 2 + 1]] + 2;
    }
}

I compiled with
build/gcc/cc1 -march=rv64gcv -mabi=lp64 -O3
--param=riscv-autovec-preference=scalable mask_gather_load-11.c

mask_gather_load-11.c: In function 'foo':
mask_gather_load-11.c:9:1: internal compiler error: in
get_group_load_store_type, at tree-vect-stmts.cc:2121
    9 | foo (uint8_t *restrict y, uint8_t *restrict x,
      | ^~~
0x9e2fad get_group_load_store_type
        ../../gcc/tree-vect-stmts.cc:2121
0x9e2fad get_load_store_type
        ../../gcc/tree-vect-stmts.cc:2451
0x1ff7221 vectorizable_store
        ../../gcc/tree-vect-stmts.cc:8309
[...]

Reply via email to