[Bug target/90024] New: [7/8/9 Regression] ICE on AArch32 NEON mov with TImode constant.

matmal01 at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 9 10:38:00 GMT 2019


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

            Bug ID: 90024
           Summary: [7/8/9 Regression] ICE on AArch32 NEON mov with TImode
                    constant.
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, patch
          Severity: normal
          Priority: P3
         Component: target
          Assignee: matmal01 at gcc dot gnu.org
          Reporter: matmal01 at gcc dot gnu.org
  Target Milestone: ---

Created attachment 46111
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46111&action=edit
Proposed fix

The below code causes an ICE for AArch32 targets with NEON at all optimisation
levels except -O0.


union a { 
  char b; 
  long long c; 
}; 
union a d; 
int g(int, union a, union a); 
void e() { 
  union a f[2] = {-1L}; 
  g(0, d, f[0]); 
} 


With the backtrace below.

$ arm-none-eabi-gcc -march=armv8-a -c test.c -O1 -mfloat-abi=hard
-mfpu=neon-fp-armv8
during RTL pass: final
test.c: In function 'e':
test.c:10:1: internal compiler error: in output_950, at config/arm/neon.md:89
   10 | }
      | ^
0x1352bfb output_950
       
/tmp/dgboter/bbs/rhev-vm4--rhe6x86_64/buildbot/rhe6x86_64--arm-none-eabi/build/src/gcc/gcc/config/arm/neon.md:89
0x8aafbd get_insn_template(int, rtx_insn*)
       
/tmp/dgboter/bbs/rhev-vm4--rhe6x86_64/buildbot/rhe6x86_64--arm-none-eabi/build/src/gcc/gcc/final.c:2071
    .... <snip> ....


I have a patch to fix the problem, creating a bugzilla report for tracking
purposes (patch added as attachment, the explanation will be added in
comments).


More information about the Gcc-bugs mailing list