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

            Bug ID: 100306
           Summary: aarch64: ICE (output_operand: invalid expression as
                    operand) during final
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following (reduced from GROMACS 2021.1) fails:

$ cat test.c
typedef double c[3];
typedef int d[3];
typedef struct {
  d e;
} f;
typedef struct {
  f g;
  f h;
} i;
i j;
double k;
int l;
void w(void *);
void x(char);
void u(void *, void *);
void m() {
  char a[4096], n[4096], b[4096], o[4096], p[4096], s[4096], r[4096], t[4096];
  w(t);
  w(p);
  w(n);
  w(b);
  u(a, s);
  char v = r[0];
  c g;
  {
    int q[4096];
    w(q);
    w(o);
  }
  x(v);
  l = 0;
  for (; l < 3; l++) {
    j.g.e[l] = g[l];
    j.h.e[l] = k;
  }
}
$ aarch64-linux-gnu-gcc -c test.c -O2 -ftree-vectorize
during RTL pass: final
test.c: In function ‘m’:
test.c:36:1: internal compiler error: output_operand: invalid expression as
operand
   36 | }
      | ^
0xa062c6 output_operand_lossage(char const*, ...)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:3627
0xa06b17 output_addr_const(_IO_FILE*, rtx_def*)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4224
0xa069fa output_addr_const(_IO_FILE*, rtx_def*)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4184
0x12415d8 aarch64_print_operand_address
        /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64.c:11235
0xa064ee output_address(machine_mode, rtx_def*)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4085
0x1244129 aarch64_print_operand
        /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64.c:10916
0xa06453 output_operand(rtx_def*, int)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4069
0xa06ec8 output_asm_insn(char const*, rtx_def**)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:3981
0xa0adc3 final_scan_insn_1
        /home/alecop01/toolchain/src/gcc/gcc/final.c:3125
0xa0b1d0 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
        /home/alecop01/toolchain/src/gcc/gcc/final.c:3171
0xa0bdf0 final_1
        /home/alecop01/toolchain/src/gcc/gcc/final.c:2022
0xa0c14e rest_of_handle_final
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4676
0xa0c14e execute
        /home/alecop01/toolchain/src/gcc/gcc/final.c:4754
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to