[gcc]
commitd3c286da3d155f7e570c93bf42ba9f3a6c5621d1
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Nov 2016 21:42:13 +0000 (17 21:42 +0000)
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Nov 2016 21:42:13 +0000 (17 21:42 +0000)
tree036e8f9e6cf13af843d4f8cf0ec5b27bf17122af
parent3c4e47c8cb9ef2cdd69569869b24f2b91c565ab5
[gcc]
2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78101
* config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
the appropriate checks for SFmode/DFmode load/stores in GPR
registers.
(fusion_addis_mem_combo_store): Likewise.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
d-form instructions for traditional Altivec registers.
(emit_fusion_p9_load): Likewise.
(emit_fusion_p9_store): Likewise.
* config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
early clobber from scratch register.  Do not match if the register
being stored is the scratch register.
(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
instructions for traditional Altivec registers.
(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.

[gcc/testsuite]
2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78101
* gcc.target/powerpc/fusion4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242564 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/fusion4.c [new file with mode: 0644]