diff options
author | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-10-30 20:17:34 +0000 |
---|---|---|
committer | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-10-30 20:17:34 +0000 |
commit | fbb23100bd3ba5c5d21600c46f8965312d055dd7 (patch) | |
tree | c29d803af28ee6e19bf950d12da4b7a93b78d596 | |
parent | d5f31abf326098cf8b7e1510cc97a1bcfdb9e2e1 (diff) |
checkpoint
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/constant@265644 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.meissner | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 29 |
2 files changed, 7 insertions, 29 deletions
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner index 596f3362986..be94cac2769 100644 --- a/gcc/ChangeLog.meissner +++ b/gcc/ChangeLog.meissner @@ -1,5 +1,12 @@ 2018-10-30 Michael Meissner <meissner@linux.ibm.com> + * config/rs6000/rs6000.md (UNSPEC_SF_CONST_MEM): Delete optimizing + SF constants for stores. + (movsf_const_mem): Likewise. + (movsf_const_mem2): Likewise. + +2018-10-30 Michael Meissner <meissner@linux.ibm.com> + * config/rs6000/predicates.md (easy_fp_direct_move_constant): Allow SFmode constants once again. * config/rs6000/rs6000.md (movsf_const_direct_move): Allow SFmode diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 5d03e2d9892..312920c7ad1 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -147,7 +147,6 @@ UNSPEC_SIGNBIT UNSPEC_SF_FROM_SI UNSPEC_SI_FROM_SF - UNSPEC_SF_CONST_MEM ]) ;; @@ -7259,34 +7258,6 @@ [(set_attr "type" "mftgpr") (set_attr "length" "12")]) -;; Optimize storing SF constants to memory. -(define_insn_and_split "movsf_const_mem" - [(set (match_operand:SF 0 "memory_operand" "=m") - (match_operand:SF 1 "easy_fp_direct_move_constant" "wG")) - (clobber (match_scratch:DI 2 "=b"))] - "TARGET_DIRECT_MOVE_FP_CONSTANT" - "#" - "&& reload_completed" - [(set (match_dup 2) - (match_dup 3)) - (set (match_dup 0) - (unspec:SF [(match_dup 2)] UNSPEC_SF_CONST_MEM))] -{ - long l; - REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (operands[1]), l); - operands[3] = GEN_INT (l); -} - [(set_attr "type" "store") - (set_attr "length" "12")]) - -(define_insn "*movsf_const_mem2" - [(set (match_operand:SF 0 "memory_operand" "=m") - (unspec:SF [(match_operand:DI 1 "int_reg_operand" "r")] - UNSPEC_SF_CONST_MEM))] - "TARGET_DIRECT_MOVE_FP_CONSTANT" - "stw%U0%X0 %1,%0" - [(set_attr "type" "store")]) - ;; Originally, we tried to keep movsf and movsd common, but the differences ;; addressing was making it rather difficult to hide with mode attributes. In ;; particular for SFmode, on ISA 2.07 (power8) systems, having the GPR store |