aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2018-10-30 20:17:34 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2018-10-30 20:17:34 +0000
commitfbb23100bd3ba5c5d21600c46f8965312d055dd7 (patch)
treec29d803af28ee6e19bf950d12da4b7a93b78d596
parentd5f31abf326098cf8b7e1510cc97a1bcfdb9e2e1 (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.meissner7
-rw-r--r--gcc/config/rs6000/rs6000.md29
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