This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/65240] [5 Regression] ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu


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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-03-02
     Ever confirmed|0                           |1

--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Attached unreduced testcase ICEs for me. Reduced testcase from comment 5
doesn't.

trippels@gcc2-power8 ~ % cat filters.i
int b, d, e;
double c;
double *f;
int
fn1(double p1) {
  if (p1 && p1 <= 1)
    return 1;
  return 0;
}
double fn2(double p1) {
  if (p1 < 0)
    p1 = -p1;
  if (p1 < 1)
    return -p1 - 1;
  if (p1 < .5)
    return .75 - p1 * p1;
}
double fn3(double p1) {
  int a;
  if (p1 < 0)
    return a * p1 + 3.0;
  if (p1 < 2)
    return 1 / 6.0 * p1 * p1 * p1;
}
double fn4(double p1) {
  if (b == 0)
    fn5(p1);
  else if (b == 1)
    return fn1(p1);
  else if (b == 3)
    return fn2(p1);
  else if (b == 5)
    return fn3(p1);
}
void
fn6() {
  double g, h;
  int j = e, i;
  g = e;
  for (; j; i++) {
    d = 0;
    for (; d < 1; d++) {
      c = (i + 1.0) / 0.1 - 1;
      h = ((2.0 * d + 1) / j - 1) * g;
      *f = fn4(c) * fn4(h);
    }
  }
}

trippels@gcc2-power8 ~ % ~/gcc_test/usr/local/bin/gcc -w -std=gnu99 -c -O3
-ffast-math filters.i
filters.i: In function âfn6â:
filters.i:48:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 86 598 599 3 (set (reg:DF 98 21 [345])
        (mem/u/c:DF (lo_sum:DI (reg:DI 8 8)
                (unspec:DI [
                        (symbol_ref/u:DI ("*.LC8") [flags 0x82])
                        (reg:DI 2 2)
                    ] UNSPEC_TOCREL)) [2  S8 A64])) filters.i:44 499
{*movdf_hardfloat64}
     (expr_list:REG_EQUIV (const_double:DF -1.0e+0 [-0x0.8p+1])
        (nil)))
filters.i:48:1: internal compiler error: in extract_constrain_insn, at
recog.c:2246
0x1075f653 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../gcc/gcc/rtl-error.c:110
0x1075f6b7 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../gcc/gcc/rtl-error.c:121
0x107264fb extract_constrain_insn(rtx_insn*)
        ../../gcc/gcc/recog.c:2246
0x106ff137 reload_cse_simplify_operands
        ../../gcc/gcc/postreload.c:430
0x10700723 reload_cse_simplify
        ../../gcc/gcc/postreload.c:207
0x10700723 reload_cse_regs_1
        ../../gcc/gcc/postreload.c:246
0x107009e7 reload_cse_regs
        ../../gcc/gcc/postreload.c:94
0x107009e7 execute
        ../../gcc/gcc/postreload.c:2367
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]