aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-04-03 23:16:26 +0000
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-04-03 23:16:26 +0000
commitb0c27777319caa21dc1a2086bb60ea4f34aa7221 (patch)
tree33e2eb06adf657ea815516c20f91ff924d2fe195 /gcc/config/rs6000
parent6737c56a50e69fd8fcee2eb6c4ee60d7254b13cb (diff)
PR target/65576
PR target/65240 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude 0.0 constant unless TARGET_VSX. * config/rs6000/rs6000.md (extenddftf2_internal): Remove last alternative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221862 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r--gcc/config/rs6000/predicates.md3
-rw-r--r--gcc/config/rs6000/rs6000.md6
2 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index 6abb40b5cff..3c8dfe6032d 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -964,7 +964,8 @@
;; Return 1 if the operand is CONST_DOUBLE 0, register or memory operand.
(define_predicate "zero_reg_mem_operand"
- (ior (match_operand 0 "zero_fp_constant")
+ (ior (and (match_test "TARGET_VSX")
+ (match_operand 0 "zero_fp_constant"))
(match_operand 0 "reg_or_mem_operand")))
;; Return 1 if the operand is a CONST_INT and it is the element for 64-bit
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index da962877057..5025e6080a3 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8369,9 +8369,9 @@
})
(define_insn_and_split "*extenddftf2_internal"
- [(set (match_operand:TF 0 "nonimmediate_operand" "=m,Y,ws,d,&d,r")
- (float_extend:TF (match_operand:DF 1 "input_operand" "d,r,md,md,md,rm")))
- (use (match_operand:DF 2 "zero_reg_mem_operand" "d,r,j,m,d,n"))]
+ [(set (match_operand:TF 0 "nonimmediate_operand" "=m,Y,ws,d,&d")
+ (float_extend:TF (match_operand:DF 1 "input_operand" "d,r,md,md,md")))
+ (use (match_operand:DF 2 "zero_reg_mem_operand" "d,r,j,m,d"))]
"!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT
&& TARGET_LONG_DOUBLE_128"