https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113622
--- Comment #21 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- This still blows up on LoongArch even after r14-8498: typedef float __attribute__ ((vector_size (16))) vec; typedef int __attribute__ ((vector_size (16))) ivec; register vec a asm("f25"), b asm("f26"); register ivec c asm("f27"); void test (void) { for (int i = 0; i < 4; i++) c[i] = a[i] < b[i] ? -1 : 1; } $ gcc/cc1 -msimd=lsx t.c -O2 -fno-vect-cost-model -nostdinc t.c: In function ‘test’: t.c:7:1: internal compiler error: in expand_expr_addr_expr_1, at expr.cc:9139 7 | test (void) | ^~~~ 0x102d7cb expand_expr_addr_expr_1 ../../gcc/gcc/expr.cc:9139 0x102e13e expand_expr_addr_expr ../../gcc/gcc/expr.cc:9252 0x103df07 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.cc:12585 0x102e824 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.cc:9440 0xe45096 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier) ../../gcc/gcc/expr.h:316 0x102fc56 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc/gcc/expr.cc:9762 0x10361c9 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.cc:11096 0xe798de expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.cc:4010 0xe79b81 expand_gimple_stmt ../../gcc/gcc/cfgexpand.cc:4071 0xe825e3 expand_gimple_basic_block ../../gcc/gcc/cfgexpand.cc:6127 0xe84b95 execute ../../gcc/gcc/cfgexpand.cc:6866 Interestingly -fno-vect-cost-model is needed to trigger the ICE.