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

Reply via email to