https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113622
Bug ID: 113622
Summary: r14-8450 regression: ICE with vectors in named
registers
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: xry111 at gcc dot gnu.org
Target Milestone: ---
Start from r14-8450 "tree-optimization/113602 - datarefs of non-addressables",
various LoongArch target tests fail. Reduced test case:
typedef double __attribute__ ((vector_size (32))) vec;
register vec a asm("f25"), b asm("f26"), c asm("f27");
void
test (void)
{
for (int i = 0; i < 4; i++)
c[i] = a[i] < b[i] ? 0.1 : 0.2;
}
$ ./gcc/cc1 t.c -O2 -msimd=lasx -fno-ident -o xvfcmp-f.s -nostdinc
t.c: In function ‘test’:
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;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
0x102029b expand_assignment(tree_node*, tree_node*, bool)
../../gcc/gcc/expr.cc:6073
0xe7a76b expand_gimple_stmt_1
../../gcc/gcc/cfgexpand.cc:3992
0xe7aaf9 expand_gimple_stmt
../../gcc/gcc/cfgexpand.cc:4071
0xe8355b expand_gimple_basic_block
../../gcc/gcc/cfgexpand.cc:6127
0xe85b0d execute
../../gcc/gcc/cfgexpand.cc:6866