diff options
author | David Edelsohn <edelsohn@gnu.org> | 2004-10-27 20:18:42 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2004-10-27 16:18:42 -0400 |
commit | 89e73849fd8fe510b1e5b8b91b5ce1211d377f95 (patch) | |
tree | e57b3c008ecf1734a55fbf88df9379229b61a06f | |
parent | 13cf7262ac0fb8c2ab9c9f798f9027d103c81773 (diff) | |
download | gcc-89e73849fd8fe510b1e5b8b91b5ce1211d377f95.zip gcc-89e73849fd8fe510b1e5b8b91b5ce1211d377f95.tar.gz gcc-89e73849fd8fe510b1e5b8b91b5ce1211d377f95.tar.bz2 |
re PR target/17956 (ICE in rs6000_emit_minmax, config/rs6000/rs6000.c:11725)
PR target/17956
* config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
final condition.
(minsf3): Same.
(maxdf3): Same.
(mindf3): Same.
From-SVN: r89707
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 12 |
2 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca2253e..96089fb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-10-27 David Edelsohn <edelsohn@gnu.org> + + PR target/17956 + * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to + final condition. + (minsf3): Same. + (maxdf3): Same. + (mindf3): Same. + 2004-10-27 Kazu Hirata <kazu@cs.umass.edu> * tree-cfg.c (thread_jumps): Speed up by reordering the two diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 4a80c7d..c9b5325 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4762,7 +4762,7 @@ (match_operand:SF 2 "gpc_reg_operand" "")) (match_dup 1) (match_dup 2)))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" "{ rs6000_emit_minmax (operands[0], SMAX, operands[1], operands[2]); DONE;}") (define_expand "minsf3" @@ -4771,7 +4771,7 @@ (match_operand:SF 2 "gpc_reg_operand" "")) (match_dup 2) (match_dup 1)))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" "{ rs6000_emit_minmax (operands[0], SMIN, operands[1], operands[2]); DONE;}") (define_split @@ -4779,7 +4779,7 @@ (match_operator:SF 3 "min_max_operator" [(match_operand:SF 1 "gpc_reg_operand" "") (match_operand:SF 2 "gpc_reg_operand" "")]))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" [(const_int 0)] " { rs6000_emit_minmax (operands[0], GET_CODE (operands[3]), @@ -5036,7 +5036,7 @@ (match_operand:DF 2 "gpc_reg_operand" "")) (match_dup 1) (match_dup 2)))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" "{ rs6000_emit_minmax (operands[0], SMAX, operands[1], operands[2]); DONE;}") (define_expand "mindf3" @@ -5045,7 +5045,7 @@ (match_operand:DF 2 "gpc_reg_operand" "")) (match_dup 2) (match_dup 1)))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" "{ rs6000_emit_minmax (operands[0], SMIN, operands[1], operands[2]); DONE;}") (define_split @@ -5053,7 +5053,7 @@ (match_operator:DF 3 "min_max_operator" [(match_operand:DF 1 "gpc_reg_operand" "") (match_operand:DF 2 "gpc_reg_operand" "")]))] - "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS" + "TARGET_PPC_GFXOPT && TARGET_HARD_FLOAT && TARGET_FPRS && !flag_trapping_math" [(const_int 0)] " { rs6000_emit_minmax (operands[0], GET_CODE (operands[3]), |