mips.md: Define conditional move patterns for floating point operands and DI mode...
authorMark Mitchell <mark@codesourcery.com>
Mon, 4 Oct 1999 09:26:57 +0000 (09:26 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 4 Oct 1999 09:26:57 +0000 (09:26 +0000)
* mips.md: Define conditional move patterns for floating point
operands and DI mode conditions.

From-SVN: r29800

gcc/ChangeLog
gcc/config/mips/mips.md

index 6f3504e5ec6842e86e5680234c6914d7cf04157f..922e7363af76bf181f1d9406c4554fc19e85a8b3 100644 (file)
@@ -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
index c269bcd787eabb502ea6a7f3c4c098ca73a210af..3941294f069e3e954f853ef19e436df0835187cc 100644 (file)
@@ -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