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

            Bug ID: 99041
           Summary: combine creates invalid address which ICEs in
                    decompose_normal_address
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

Created attachment 50153
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50153&action=edit
creduced test case

For a reduced test case from the Eigen library with some MMA builtin usage, we
are ICEing in decompose_normal_address():

bergner@pike:~/gcc/BUGS/MMA/CHIP$ xg++ -B/path/to/gcc -S -mcpu=power10
-std=c++03 -nostdinc -fno-check-new -fno-common -fstrict-aliasing -ansi -O2 -w
polynomialsolver.ii 
during RTL pass: reload
polynomialsolver.ii: In function ‘void test_polynomialsolver()’:
polynomialsolver.ii:78:67: internal compiler error: in
decompose_normal_address, at rtlanal.c:6754
   78 |  void test_polynomialsolver() { polynomialsolver< double, 5 >(5); }
      |                                                                   ^
0x10ecf3cf decompose_normal_address
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/rtlanal.c:6754
0x10ecf3cf decompose_address(address_info*, rtx_def**, machine_mode, unsigned
char, rtx_code)
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/rtlanal.c:6787
0x10cda44f process_address_1
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/lra-constraints.c:3460
0x10cdd80b process_address
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/lra-constraints.c:3734
0x10cdd80b curr_insn_transform
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/lra-constraints.c:4049
0x10ce497f lra_constraints(bool)
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/lra-constraints.c:5138
0x10cc560f lra(_IO_FILE*)
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/lra.c:2336
0x10c535bb do_reload
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/ira.c:5821
0x10c535bb execute
        /home/bergner/gcc/gcc-fsf-mainline-pr98872/gcc/ira.c:6007
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.

The invalid address comes from:

(insn 127 126 128 3 (set (reg:OO 138 [ _41 ])
        (unspec:OO [
                (mem:V16QI (reg:DI 149 [ ivtmp.49 ]) [0 MEM <ax> [(void
*)_75]+0 S16 A8])
                (mem:V16QI (plus:DI (plus:DI (reg:DI 142 [ _63 ])
                            (reg:DI 149 [ ivtmp.49 ]))
                        (reg:DI 197)) [0 MEM <ax> [(void *)_24 + _16 * 1]+0 S16
A8])
            ] UNSPEC_MMA_ASSEMBLE)) 2074 {*mma_assemble_pair}
     (nil))

Reply via email to