https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111751
--- Comment #14 from JuzheZhong <juzhe.zhong at rivai dot ai> --- Also this case ICE: typedef unsigned char __attribute__((vector_size(4))) uvec; int main (int argc, char *argv[]) { int i; int x = 0; uvec uc0 = (uvec) {argc, 1, 2, 10}; unsigned char uc1[4] = {0, 3, 2, 200}; signed char ucg[4] = {1, 0, 0, 0 }; signed char ucl[4] = {0, 1, 0, 1 }; #define uc0_ ((unsigned char *)&uc0) for (i = 0; i < 4; i ++) { x |= ucg[i] != (uc0_[i] > uc1[i]); x |= ucl[i] != (uc0_[i] < uc1[i]); } return x; } during GIMPLE pass: isel dump file: auto.c.256t.isel auto.c: In function 'main': auto.c:3:5: internal compiler error: in gimple_expand_vec_cond_expr, at gimple-isel.cc:328 3 | int main (int argc, char *argv[]) { | ^~~~ 0x1bb55bd gimple_expand_vec_cond_expr ../../../../gcc/gcc/gimple-isel.cc:325 0x1bb57c6 execute ../../../../gcc/gcc/gimple-isel.cc:390 Looks odd, it ICE at gimple-isel.cc: gcc_assert (VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (op0))