re PR target/65240 (ICE (insn does not satisfy its constraints) on powerpc64le-linux...
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Thu, 19 Mar 2015 22:37:33 +0000 (22:37 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 19 Mar 2015 22:37:33 +0000 (22:37 +0000)
commit8d9fb9bb358aeac48bca2095a45e0306d4a6b7db
tree5e637e4c0de219dabaa221d54e60d5940317137c
parentef0006ebdb71de99e15aef9fd2a2d7c1830c6011
re PR target/65240 (ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu)

[gcc]
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.

[gcc/testsuite]
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.

From-SVN: r221524
gcc/ChangeLog
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr65240-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/pr65240-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/pr65240-3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/pr65240-4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/pr65240.h [new file with mode: 0644]