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 6f3504e5ec6..922e7363af7 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 c269bcd787e..3941294f069 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -10076,6 +10076,21 @@ move\\t%0,%z4\\n\\ [(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 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 @@ -10107,6 +10122,21 @@ move\\t%0,%z4\\n\\ [(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 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 -- 2.30.2