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.