https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113622
--- Comment #23 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 30 Jan 2024, xry111 at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113622 > > --- Comment #22 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- > On x86_64: > > $ cat t.c > typedef float __attribute__ ((vector_size (16))) vec; > typedef int __attribute__ ((vector_size (16))) ivec; > register vec a asm("xmm0"), b asm("xmm1"); > register ivec c asm("xmm2"); > > void > test (void) > { > for (int i = 0; i < 4; i++) > c[i] = a[i] < b[i] ? -1 : 1; > } > $ gcc/cc1 -msse2 t.c -O2 -fno-vect-cost-model -nostdinc -ffixed-xmm{0,1,2} > 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) > | ^~~~ > 0x10e6d6e expand_expr_addr_expr_1 > ../../gcc/gcc/expr.cc:9139 > 0x10e76e2 expand_expr_addr_expr > ../../gcc/gcc/expr.cc:9252 > 0x10f73a7 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, > expand_modifier, rtx_def**, bool) > ../../gcc/gcc/expr.cc:12585 > 0x10e7dc8 expand_expr_real(tree_node*, rtx_def*, machine_mode, > expand_modifier, > rtx_def**, bool) > ../../gcc/gcc/expr.cc:9440 > 0xef7346 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier) > ../../gcc/gcc/expr.h:316 > 0x10e91fa expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, > expand_modifier) > ../../gcc/gcc/expr.cc:9762 > 0x10ef77d expand_expr_real_gassign(gassign*, rtx_def*, machine_mode, > expand_modifier, rtx_def**, bool) > ../../gcc/gcc/expr.cc:11096 > 0xf2db31 expand_gimple_stmt_1 > ../../gcc/gcc/cfgexpand.cc:4010 > 0xf2ddd4 expand_gimple_stmt > ../../gcc/gcc/cfgexpand.cc:4071 > 0xf36844 expand_gimple_basic_block > ../../gcc/gcc/cfgexpand.cc:6127 > 0xf38ff8 execute > ../../gcc/gcc/cfgexpand.cc:6866 > > Should I open a new ticket or add back 14 Regression to the subject? Please open a new ticked - this seems to be another vectorizer issue. We end up with the invalid _28 = (sizetype) &a;