This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/65240] [5 Regression] ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu
- From: "trippels at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 02 Mar 2015 12:49:08 +0000
- Subject: [Bug target/65240] [5 Regression] ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu
- Auto-submitted: auto-generated
- References: <bug-65240-4 at http dot gcc dot gnu dot org/bugzilla/>
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.