re PR target/65576 (ICE in gcc.c-torture/compile/pr33855.c)

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.

From-SVN: r221862
This commit is contained in:
Alan Modra 2015-04-04 09:46:26 +10:30 committed by Alan Modra
parent f107227ba7
commit 69223faeb3
3 changed files with 14 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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"