]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: Remove "O" alternative from lshrsi3
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jun 2014 17:09:24 +0000 (17:09 +0000)
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jun 2014 17:09:24 +0000 (17:09 +0000)
Nothing will ever generate RTL matching this alternative.  Maybe long
ago this was needed, but not anymore.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211875 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 9240cc39ed6c2b956f3af4315a3df1d093b0eefc..16c64e01a1832bbd7cdbd96696476f73597ffce2 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
+       Remove "O" alternative.
+
 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
index 6f499a54bf634b21c540a31e363c8653630cc755..26791e81879fa7224c4473aa10ab633427aba4a6 100644 (file)
   "")
 
 (define_insn "lshrsi3"
-  [(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" "O,r,i")))]
+  [(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")))]
   ""
   "@
-  mr %0,%1
   srw %0,%1,%2
   srwi %0,%1,%h2"
-  [(set_attr "type" "integer,shift,shift")
-   (set_attr "var_shift" "no,yes,no")])
+  [(set_attr "type" "shift")
+   (set_attr "var_shift" "yes,no")])
 
 (define_insn "*lshrsi3_64"
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
    (set_attr "var_shift" "yes,no")])
 
 (define_insn ""
-  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x,?y,?y,?y")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r,r,r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "O,r,i,O,r,i"))
+  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,?y,?y")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "r,i,r,i"))
                    (const_int 0)))
-   (clobber (match_scratch:SI 3 "=X,r,r,X,r,r"))]
+   (clobber (match_scratch:SI 3 "=r,r,r,r"))]
   "TARGET_32BIT"
   "@
-   mr. %1,%1
    srw. %3,%1,%2
    srwi. %3,%1,%h2
    #
-   #
    #"
-  [(set_attr "type" "logical,shift,shift,shift,shift,shift")
-   (set_attr "var_shift" "no,yes,no,no,yes,no")
+  [(set_attr "type" "shift")
+   (set_attr "var_shift" "yes,no,yes,no")
    (set_attr "dot" "yes")
-   (set_attr "length" "4,4,4,8,8,8")])
+   (set_attr "length" "4,4,8,8")])
 
 (define_split
   [(set (match_operand:CC 0 "cc_reg_not_cr0_operand" "")
   "")
 
 (define_insn ""
-  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x,x,?y,?y,?y")
-       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r,r,r")
-                                (match_operand:SI 2 "reg_or_cint_operand" "O,r,i,O,r,i"))
+  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x,?y,?y")
+       (compare:CC (lshiftrt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r")
+                                (match_operand:SI 2 "reg_or_cint_operand" "r,i,r,i"))
                    (const_int 0)))
-   (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r,r")
+   (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r")
        (lshiftrt:SI (match_dup 1) (match_dup 2)))]
   "TARGET_32BIT"
   "@
-   mr. %0,%1
    srw. %0,%1,%2
    srwi. %0,%1,%h2
    #
-   #
    #"
-  [(set_attr "type" "logical,shift,shift,shift,shift,shift")
-   (set_attr "var_shift" "no,yes,no,no,yes,no")
+  [(set_attr "type" "shift")
+   (set_attr "var_shift" "yes,no,yes,no")
    (set_attr "dot" "yes")
-   (set_attr "length" "4,4,4,8,8,8")])
+   (set_attr "length" "4,4,8,8")])
 
 (define_split
   [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")