This causes an ICE in gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-11.c (internal compiler error: in get_group_load_store_type, at tree-vect-stmts.cc:2121)
#include <stdint-gcc.h> #define TEST_LOOP(DATA_TYPE, INDEX_TYPE) \ void __attribute__ ((noinline, noclone)) \ f_##DATA_TYPE##_##INDEX_TYPE (DATA_TYPE *restrict y, DATA_TYPE *restrict x, \ INDEX_TYPE *restrict index, \ INDEX_TYPE *restrict 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; \ } \ } TEST_LOOP (int8_t, int8_t) Is there now a mismatch with the LEN_ IFNs somewhere? Regards Robin