Bug 65577 - ICE on g++.dg/torture/pr58369.C
Summary: ICE on g++.dg/torture/pr58369.C
Status: RESOLVED DUPLICATE of bug 65576
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 5.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
Depends on:
Reported: 2015-03-26 03:23 UTC by Martin Sebor
Modified: 2015-03-26 20:26 UTC (History)
0 users

See Also:
Target: powerpc64-*-linux-*
Known to work:
Known to fail:
Last reconfirmed:


Note You need to log in before you can comment on or make changes to this bug.
Description Martin Sebor 2015-03-26 03:23:43 UTC
Compiling the g++.dg/torture/pr58369.C test with yesterday's trunk (r221640) on powerpc64 (a POWER7 processor) fails with the ICE below.  Interestingly, the ICE disappears with -O1.  On powerpc64le gcc compiles the test successfully.

$ g++ -O0 -c /src/gcc-trunk/gcc/testsuite/g++.dg/torture/pr58369.C
/src/gcc-trunk/gcc/testsuite/g++.dg/torture/pr58369.C: In function ‘T ellint_rj_imp(T, T, T, T, Policy&) [with T = long double; Policy = PolicyA]’:
/src/gcc-trunk/gcc/testsuite/g++.dg/torture/pr58369.C:88:1: error: unrecognizable insn:
(insn 248 247 99 8 (set (reg:DF 10 10)
        (mem/u/c:DF (symbol_ref/u:DI ("*.LC0") [flags 0x2]) [0  S8 A64])) /src/gcc-trunk/gcc/testsuite/g++.dg/torture/pr58369.C:70 -1
/src/gcc-trunk/gcc/testsuite/g++.dg/torture/pr58369.C:88:1: internal compiler error: in extract_insn, at recog.c:2343
0x109c9f1b _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
0x109c9f6f _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
0x1098f907 extract_insn(rtx_insn*)
0x1098f9c7 extract_insn_cached(rtx_insn*)
0x106b6817 cleanup_subreg_operands(rtx_insn*)
0x109c74b7 reload(rtx_insn*, int)
0x10854af7 do_reload
0x10854af7 execute
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.
Comment 1 Martin Sebor 2015-03-26 20:24:30 UTC
According to git bisect, 2d5ee2b9035db2414ae3535db18550c1d90e52fd is the first bad commit:

commit 2d5ee2b9035db2414ae3535db18550c1d90e52fd
Author: meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Mar 19 22:37:33 2015 +0000

    2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
    	PR target/65240
    	* config/rs6000/predicates.md (easy_fp_constant): Remove special
    	-ffast-math handling that kept non-0 constants live in the RTL
    	until reload.  Remove logic testing the number of instructions it
    	took to create a constant in a GPR that was never used, due to a
    	test for soft-float earlier.
    	(memory_fp_constant): Delete, no longer used.
    	* config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
    	alternatives for loading non-0 constants into GPRs for hard
    	floating point that is no longer needed due to changes in
    	easy_fp_constant.  Add support for loading 0.0 into GPRs.
    	(mov<mode>_hardfloat32): Likewise.
    	(mov<mode>_hardfloat64): Likewise.
    	(mov<mode>_64bit_dm): Likewise.
    	(movtd_64bit_nodm): Likewise.
    	(pre-reload move FP constant define_split): Delete define_split,
    	since it is no longer used.
    	(extenddftf2_internal): Remove GHF constraints that are not valid
    	for extenddftf2.
    2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
    	PR target/65240
    	* gcc/testsuite/g++.dg/pr65240.h: Add tests for PR 65240.
    	* gcc/testsuite/g++.dg/pr65240-1.C: Likewise.
    	* gcc/testsuite/g++.dg/pr65240-2.C: Likewise.
    	* gcc/testsuite/g++.dg/pr65240-3.C: Likewise.
    	* gcc/testsuite/g++.dg/pr65240-4.C: Likewise.
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221524 138bc75d-0d04-0410-961f-82ee72b054a4
Comment 2 Martin Sebor 2015-03-26 20:26:08 UTC
Both this and pr65576 are caused by the same commit. Closing as duplicate.

*** This bug has been marked as a duplicate of bug 65576 ***