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

            Bug ID: 80343
           Summary: [7 Regression] ICE in extract_constrain_insn, at
                    recog.c:2213 (error: insn does not satisfy its
                    constraints)
           Product: gcc
           Version: 7.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-e500v2-linux-gnuspe

gcc-7.0.0-alpha20170402 for a SPE target ICEs when compiling the following
snippet w/ -O2 -ftracer -fPIC:

long long int vi, ls;
int wq, oa, to, fv;
signed char zo;

long long int
ai (long long int ip, long long int jc, int gt)
{
  ip /= 3;
  jc += ip;
  if (ip != 0)
    vi = 0;
  vi += ls;

  if (wq != oa)
    {
      int tz;

      for (tz = 0; tz < 32; ++tz)
        zo -= wq & gt;

      if ((gt & 5) > oa)
        {
          zo += gt;
          fv += zo + to;
        }

      if (gt != 0)
        oa = 0;

      if (fv != 0)
        {
          vi += wq;
          ls += ip;
          jc += (vi != 0) ? ip : ls;
        }

      while (tz != 0)
        {
          zo = wq;
          tz = zo;
        }

      ++to;
      wq = ip;
    }

  return jc;
}

% powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20170402 -fPIC -O2 -ftracer -c
kz97n1pv.c
kz97n1pv.c: In function 'ai':
kz97n1pv.c:48:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 334 329 309 8 (parallel [
            (set (reg:SI 15 15 [263])
                (and:SI (reg/v:SI 31 31 [orig:199 gt ] [199])
                    (const_int 5 [0x5])))
            (clobber (scratch:CC))
        ]) "kz97n1pv.c":21 180 {andsi3_imm}
     (nil))
kz97n1pv.c:48:1: internal compiler error: in extract_constrain_insn, at
recog.c:2213
0x3060564c775 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/rtl-error.c:108
0x3060564c7c0 _fatal_insn_not_found(rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/rtl-error.c:119
0x30605618d09 extract_constrain_insn(rtx_insn*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/recog.c:2213
0x3060550a5ef check_rtl
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/lra.c:2128
0x3060550f117 lra(_IO_FILE*)
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/lra.c:2546
0x306054bb920 do_reload
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/ira.c:5457
0x306054bb920 execute
       
/var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170402/work/gcc-7-20170402/gcc/ira.c:5641

Reply via email to