diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-10-04 09:26:57 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-10-04 09:26:57 +0000 |
commit | b3a798924e62d98a2a177db14c8cceb8e09781f9 (patch) | |
tree | 51473ee40d343b64454994926f4d90e93e9612d0 /gcc | |
parent | c557501d33029a97f01105f220131e9b2516f0c1 (diff) | |
download | gcc-b3a798924e62d98a2a177db14c8cceb8e09781f9.zip gcc-b3a798924e62d98a2a177db14c8cceb8e09781f9.tar.gz gcc-b3a798924e62d98a2a177db14c8cceb8e09781f9.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 30 |
2 files changed, 35 insertions, 0 deletions
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 <mark@codesourcery.com> + + * mips.md: Define conditional move patterns for floating point + operands and DI mode conditions. + Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com> * 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") |