diff options
author | Hans-Peter Nilsson <hp@bitrange.com> | 2004-11-28 09:48:27 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2004-11-28 09:48:27 +0000 |
commit | 69ffa7aa5a5eaf6b8525bd86ff2479bd09448c51 (patch) | |
tree | a37af773a469ee92f5b34a1ea83236c1e0029852 /gcc | |
parent | 78a27531e02d317c06e0bb63f3858ee9117390ea (diff) | |
download | gcc-69ffa7aa5a5eaf6b8525bd86ff2479bd09448c51.zip gcc-69ffa7aa5a5eaf6b8525bd86ff2479bd09448c51.tar.gz gcc-69ffa7aa5a5eaf6b8525bd86ff2479bd09448c51.tar.bz2 |
re PR target/18331 (mmix-knuth-mmixware testsuite failure: execute/ieee/fp-cmp-8.c gcc.dg/20040625-1.c)
PR target/18331
* config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
"*movdicc_real". Only match reversible comparisons.
("*movdicc_real_nonreversible"): New pattern, split from
"*movdicc_real". Match only nonreversible comparisons. Exclude
reversed alternatives.
("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
Similar.
From-SVN: r91416
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/mmix/mmix.md | 38 |
2 files changed, 45 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3984aaa..b9a65f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2004-11-28 Hans-Peter Nilsson <hp@bitrange.com> + + PR target/18331 + * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from + "*movdicc_real". Only match reversible comparisons. + ("*movdicc_real_nonreversible"): New pattern, split from + "*movdicc_real". Match only nonreversible comparisons. Exclude + reversed alternatives. + ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"): + Similar. + 2004-11-27 Richard Henderson <rth@redhat.com> * config/ia64/ia64.md: Move all define_predicate's ... diff --git a/gcc/config/mmix/mmix.md b/gcc/config/mmix/mmix.md index 389b243..827ed4b 100644 --- a/gcc/config/mmix/mmix.md +++ b/gcc/config/mmix/mmix.md @@ -769,7 +769,7 @@ DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\;CSNN %0,$255,%2") ZS%d2 %0,%3,%1 ZS%D2 %0,%3,%4") -(define_insn "*movdicc_real" +(define_insn "*movdicc_real_reversible" [(set (match_operand:DI 0 "register_operand" "=r ,r ,r ,r") (if_then_else:DI @@ -779,13 +779,28 @@ DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\;CSNN %0,$255,%2") (const_int 0)]) (match_operand:DI 1 "mmix_reg_or_8bit_operand" "rI,0 ,rI,GM") (match_operand:DI 4 "mmix_reg_or_8bit_operand" "0 ,rI,GM,rI")))] - "" + "REVERSIBLE_CC_MODE (GET_MODE (operands[3]))" "@ CS%d2 %0,%3,%1 CS%D2 %0,%3,%4 ZS%d2 %0,%3,%1 ZS%D2 %0,%3,%4") +(define_insn "*movdicc_real_nonreversible" + [(set + (match_operand:DI 0 "register_operand" "=r ,r") + (if_then_else:DI + (match_operator + 2 "mmix_comparison_operator" + [(match_operand 3 "mmix_reg_cc_operand" "r ,r") + (const_int 0)]) + (match_operand:DI 1 "mmix_reg_or_8bit_operand" "rI,rI") + (match_operand:DI 4 "mmix_reg_or_0_operand" "0 ,GM")))] + "!REVERSIBLE_CC_MODE (GET_MODE (operands[3]))" + "@ + CS%d2 %0,%3,%1 + ZS%d2 %0,%3,%1") + (define_insn "*movdfcc_real_foldable" [(set (match_operand:DF 0 "register_operand" "=r ,r ,r ,r") @@ -803,7 +818,7 @@ DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\;CSNN %0,$255,%2") ZS%d2 %0,%3,%1 ZS%D2 %0,%3,%4") -(define_insn "*movdfcc_real" +(define_insn "*movdfcc_real_reversible" [(set (match_operand:DF 0 "register_operand" "=r ,r ,r ,r") (if_then_else:DF @@ -813,13 +828,28 @@ DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\;CSNN %0,$255,%2") (const_int 0)]) (match_operand:DF 1 "mmix_reg_or_0_operand" "rGM,0 ,rGM,GM") (match_operand:DF 4 "mmix_reg_or_0_operand" "0 ,rGM,GM ,rGM")))] - "" + "REVERSIBLE_CC_MODE (GET_MODE (operands[3]))" "@ CS%d2 %0,%3,%1 CS%D2 %0,%3,%4 ZS%d2 %0,%3,%1 ZS%D2 %0,%3,%4") +(define_insn "*movdfcc_real_nonreversible" + [(set + (match_operand:DF 0 "register_operand" "=r ,r") + (if_then_else:DF + (match_operator + 2 "mmix_comparison_operator" + [(match_operand 3 "mmix_reg_cc_operand" "r ,r") + (const_int 0)]) + (match_operand:DF 1 "mmix_reg_or_0_operand" "rGM,rGM") + (match_operand:DF 4 "mmix_reg_or_0_operand" "0 ,GM")))] + "!REVERSIBLE_CC_MODE (GET_MODE (operands[3]))" + "@ + CS%d2 %0,%3,%1 + ZS%d2 %0,%3,%1") + ;; FIXME: scc patterns will probably help, I just skip them ;; right now. Revisit. |