arm.md (arm_cmpsi_insn): Split rI alternative.
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 13 Sep 2013 10:26:34 +0000 (10:26 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 13 Sep 2013 10:26:34 +0000 (10:26 +0000)
2013-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
Set type attribute correctly. Set predicable_short_it attribute.
(cmpsi_shiftsi): Remove %? from output template.

From-SVN: r202560

gcc/ChangeLog
gcc/config/arm/arm.md

index ba2929930ed69df981f55438663dab8e75a19f95..6d8c030f9da74e8a6336fd9a9a87b253bc2781cd 100644 (file)
@@ -1,3 +1,9 @@
+2013-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
+       Set type attribute correctly. Set predicable_short_it attribute.
+       (cmpsi_shiftsi): Remove %? from output template.
+
 2013-09-13  Richard Biener  <rguenther@suse.de>
 
        * tree-loop-distribution.c (struct rdg_component,
index 0f958041d7c7408fd86f764ee333c02652ef4315..b094cff0d7ee34d8aa9cf3e320616f7668b0db99 100644 (file)
 
 (define_insn "*arm_cmpsi_insn"
   [(set (reg:CC CC_REGNUM)
-       (compare:CC (match_operand:SI 0 "s_register_operand" "l,r,r,r")
-                   (match_operand:SI 1 "arm_add_operand"    "Py,r,rI,L")))]
+       (compare:CC (match_operand:SI 0 "s_register_operand" "l,r,r,r,r")
+                   (match_operand:SI 1 "arm_add_operand"    "Py,r,r,I,L")))]
   "TARGET_32BIT"
   "@
    cmp%?\\t%0, %1
    cmp%?\\t%0, %1
    cmp%?\\t%0, %1
+   cmp%?\\t%0, %1
    cmn%?\\t%0, #%n1"
   [(set_attr "conds" "set")
-   (set_attr "arch" "t2,t2,any,any")
-   (set_attr "length" "2,2,4,4")
+   (set_attr "arch" "t2,t2,any,any,any")
+   (set_attr "length" "2,2,4,4,4")
    (set_attr "predicable" "yes")
-   (set_attr "type" "alus_reg,alus_reg,alus_reg,alus_imm")]
+   (set_attr "predicable_short_it" "yes,yes,yes,no,no")
+   (set_attr "type" "alus_imm,alus_reg,alus_reg,alus_imm,alus_imm")]
 )
 
 (define_insn "*cmpsi_shiftsi"
                     [(match_operand:SI 1 "s_register_operand" "r,r,r")
                      (match_operand:SI 2 "shift_amount_operand" "M,r,M")])))]
   "TARGET_32BIT"
-  "cmp%?\\t%0, %1%S3"
+  "cmp\\t%0, %1%S3"
   [(set_attr "conds" "set")
    (set_attr "shift" "1")
    (set_attr "arch" "32,a,a")