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

            Bug ID: 80903
           Summary: [8 Regression] ICE: internal consistency failure
                    (error: invalid rtl sharing found in the insn)
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: powerpc-*-linux-gnu*, powerpcspe-*-linux-gnu*

gcc-8.0.0-alpha20170521 snapshot ICEs when compiling the following snippet w/
-mcpu=powerpc -O2 (-O3, -Ofast) -funroll-loops:

short int ws;

void
oe (int rw, short int vr, short int qo)
{
  if (vr != 0)
  {
    const short int sp = 37;

    vr = 0;
    while (vr < sp)
    {
      while (vr < sp)
      {
 al:
        ++vr;
      }
      for (vr = 0; vr < sp - 1; ++vr)
      {
      }
      if (qo != 0)
      {
        --ws;
        vr *= ws;
      }
      qo = rw;
    }
    rw = 0;
  }

  goto al;
}

% powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20170521 -mcpu=powerpc -O2
-funroll-loops -c avdjh81j.c
avdjh81j.c: In function 'oe':
avdjh81j.c:32:1: error: invalid rtl sharing found in the insn
 }
 ^
(insn 450 449 452 81 (set (subreg:HI (reg:SI 220) 2)
        (subreg:HI (reg:SI 222) 2)) -1
     (nil))
avdjh81j.c:32:1: error: shared rtx
(subreg:HI (reg:SI 220) 2)
avdjh81j.c:32:1: internal compiler error: internal consistency failure
0x84f5de verify_rtx_sharing
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/emit-rtl.c:2777
0x84f4ef verify_rtx_sharing
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/emit-rtl.c:2792
0x84f9de verify_insn_sharing
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/emit-rtl.c:2863
0x855b77 verify_rtl_sharing()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/emit-rtl.c:2886
0xb465a6 execute_function_todo
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/passes.c:1990
0xb473eb execute_todo
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170521/work/gcc-8-20170521/gcc/passes.c:2023

It's reproducible not only w/ -mcpu=powerpc, but actually w/ any target CPU
name from the following list: 401 403 476 476fp 601 604 8540 8548 a2 e300c2
e300c3 e500mc e500mc64 e5500 e6500 power6 power6x powerpc64 rs64 titan.

Reply via email to