https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113622
Xi Ruoyao <xry111 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-01-26 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- On x86_64 it's reproducible likewise: typedef double __attribute__ ((vector_size (32))) vec; register vec a asm("ymm2"), b asm("ymm0"), c asm("ymm1"); void test (void) { for (int i = 0; i < 4; i++) c[i] = a[i] < b[i] ? 0.1 : 0.2; } $ gcc/cc1 t.c -mavx2 t.c:8:10: internal compiler error: in expand_assignment, at expr.cc:6073 8 | c[i] = a[i] < b[i] ? 0.1 : 0.2; | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ 0x10d9759 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/gcc/expr.cc:6073 0xf2e9c0 expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.cc:3992 0xf2ed4e expand_gimple_stmt ../../gcc/gcc/cfgexpand.cc:4071 0xf377be expand_gimple_basic_block ../../gcc/gcc/cfgexpand.cc:6127 0xf39f72 execute ../../gcc/gcc/cfgexpand.cc:6866 Self-confirming.