diff options
author | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-03 23:16:26 +0000 |
---|---|---|
committer | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-03 23:16:26 +0000 |
commit | b0c27777319caa21dc1a2086bb60ea4f34aa7221 (patch) | |
tree | 33e2eb06adf657ea815516c20f91ff924d2fe195 /gcc | |
parent | 6737c56a50e69fd8fcee2eb6c4ee60d7254b13cb (diff) | |
download | gcc-b0c27777319caa21dc1a2086bb60ea4f34aa7221.tar.gz |
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')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 3 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 6 |
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03e8e3e3a35..d29f29a82b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-04-04 Alan Modra <amodra@gmail.com> + + 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. + 2015-04-03 Jan Hubicka <hubicka@ucw.cz> PR ipa/65648 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" |