From b3a798924e62d98a2a177db14c8cceb8e09781f9 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 4 Oct 1999 09:26:57 +0000 Subject: [PATCH] mips.md: Define conditional move patterns for floating point operands and DI mode conditions. * mips.md: Define conditional move patterns for floating point operands and DI mode conditions. From-SVN: r29800 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f3504e..922e736 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 4 02:31:20 1999 Mark Mitchell + + * mips.md: Define conditional move patterns for floating point + operands and DI mode conditions. + Mon Oct 4 02:12:41 1999 Mark Mitchell * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index c269bcd..3941294 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -10079,6 +10079,21 @@ move\\t%0,%z4\\n\\ (define_insn "" [(set (match_operand:SF 0 "register_operand" "=f,f") (if_then_else:SF + (match_operator 4 "equality_op" + [(match_operand:DI 1 "se_register_operand" "d,d") + (const_int 0)]) + (match_operand:SF 2 "register_operand" "f,0") + (match_operand:SF 3 "register_operand" "0,f")))] + "mips_isa >= 4 && TARGET_HARD_FLOAT" + "@ + mov%B4.s\\t%0,%2,%1 + mov%b4.s\\t%0,%3,%1" + [(set_attr "type" "move") + (set_attr "mode" "SF")]) + +(define_insn "" + [(set (match_operand:SF 0 "register_operand" "=f,f") + (if_then_else:SF (match_operator 3 "equality_op" [(match_operand:CC 4 "register_operand" "z,z") @@ -10110,6 +10125,21 @@ move\\t%0,%z4\\n\\ (define_insn "" [(set (match_operand:DF 0 "register_operand" "=f,f") (if_then_else:DF + (match_operator 4 "equality_op" + [(match_operand:DI 1 "se_register_operand" "d,d") + (const_int 0)]) + (match_operand:DF 2 "register_operand" "f,0") + (match_operand:DF 3 "register_operand" "0,f")))] + "mips_isa >= 4 && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" + "@ + mov%B4.d\\t%0,%2,%1 + mov%b4.d\\t%0,%3,%1" + [(set_attr "type" "move") + (set_attr "mode" "DF")]) + +(define_insn "" + [(set (match_operand:DF 0 "register_operand" "=f,f") + (if_then_else:DF (match_operator 3 "equality_op" [(match_operand:CC 4 "register_operand" "z,z") -- 2.7.4