Try to fix inline of fp/int convert
authorMichael Meissner <meissner@gcc.gnu.org>
Mon, 20 May 1996 15:17:41 +0000 (15:17 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Mon, 20 May 1996 15:17:41 +0000 (15:17 +0000)
From-SVN: r12057

gcc/config/rs6000/rs6000.md

index 1e35c93cc85f365853daa77a73723466b817328e..cc843941b3384900766dce91e7ae9242417549f6 100644 (file)
 }")
 
 (define_insn "lshrsi3_power"
-  [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
-       (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
-                    (match_operand:SI 2 "reg_or_cint_operand" "r,i")))
-   (clobber (match_scratch:SI 3 "=q,X"))]
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r")
+       (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r")
+                    (match_operand:SI 2 "reg_or_cint_operand" "r,O,i")))
+   (clobber (match_scratch:SI 3 "=q,X,X"))]
   "TARGET_POWER"
   "@
   sre %0,%1,%2
+  mr %0,%1
   {s%A2i|s%A2wi} %0,%1,%h2")
 
 (define_insn "lshrsi3_no_power"
-  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-       (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
-                    (match_operand:SI 2 "reg_or_cint_operand" "ri")))]
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
+       (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
+                    (match_operand:SI 2 "reg_or_cint_operand" "O,ri")))]
   "! TARGET_POWER"
-  "{sr|srw}%I2 %0,%1,%h2")
+  "@
+  mr %0,%1
+  {sr|srw}%I2 %0,%1,%h2")
 
 (define_insn ""
-  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "r,i"))
+  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "r,O,i"))
                    (const_int 0)))
-   (clobber (match_scratch:SI 3 "=r,r"))
-   (clobber (match_scratch:SI 4 "=q,X"))]
+   (clobber (match_scratch:SI 3 "=r,X,r"))
+   (clobber (match_scratch:SI 4 "=q,X,X"))]
   "TARGET_POWER"
   "@
   sre. %3,%1,%2
+  mr. %1,%1
   {s%A2i.|s%A2wi.} %3,%1,%h2"
   [(set_attr "type" "delayed_compare")])
 
 (define_insn ""
-  [(set (match_operand:CC 0 "cc_reg_operand" "=x")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "ri"))
+  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "O,ri"))
                    (const_int 0)))
-   (clobber (match_scratch:SI 3 "=r"))]
+   (clobber (match_scratch:SI 3 "=X,r"))]
   "! TARGET_POWER"
-  "{sr|srw}%I2. %3,%1,%h2"
+  "@
+   mr. %1,%1
+   {sr|srw}%I2. %3,%1,%h2"
   [(set_attr "type" "delayed_compare")])
 
 (define_insn ""
-  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "r,i"))
+  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x,x")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "r,O,i"))
                    (const_int 0)))
-   (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
+   (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r")
        (lshiftrt:SI (match_dup 1) (match_dup 2)))
-   (clobber (match_scratch:SI 4 "=q,X"))]
+   (clobber (match_scratch:SI 4 "=q,X,X"))]
   "TARGET_POWER"
   "@
   sre. %0,%1,%2
+  mr. %0,%1
   {s%A2i.|s%A2wi.} %0,%1,%h2"
   [(set_attr "type" "delayed_compare")])
 
 (define_insn ""
-  [(set (match_operand:CC 3 "cc_reg_operand" "=x")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "ri"))
+  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "O,ri"))
                    (const_int 0)))
-   (set (match_operand:SI 0 "gpc_reg_operand" "=r")
+   (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (lshiftrt:SI (match_dup 1) (match_dup 2)))]
   "! TARGET_POWER"
-  "{sr|srw}%I2. %0,%1,%h2"
+  "@
+   mr. %0,%1
+   {sr|srw}%I2. %0,%1,%h2"
   [(set_attr "type" "delayed_compare")])
 
 (define_insn ""