https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110411

            Bug ID: 110411
           Summary: ICE on simple memcpy test case when allowing
                    generation of vector pair load/store insns
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

bergner@ltcden2-lp1:~$ cat bug.c
#include <string.h>

struct s {
  long a;
  long b;
  long c;
  long d: 1;
};
unsigned long ptr;

void
bug (struct s *dst)
{
  struct s *src = (struct s *)(ptr & ~0xFUL);
  memcpy (dst, src, sizeof(struct s));
}

bergner@ltcden2-lp1:~$ gcc -S -O2 -mcpu=power10 -mblock-ops-vector-pair bug.c
during RTL pass: final
bug.c: In function 'bug':
bug.c:16:1: internal compiler error: output_operand: invalid expression as
operand
   16 | }
      | ^
0x10dea57b output_operand_lossage(char const*, ...)
        /home/bergner/gcc/gcc-fsf-mainline-base/gcc/final.cc:3190
0x10dee2bb output_addr_const(_IO_FILE*, rtx_def*)
        /home/bergner/gcc/gcc-fsf-mainline-base/gcc/final.cc:3787
...

Reply via email to