constraints.md (Usn, [...]): New constraints.
authorZhenqiang Chen <zhenqiang.chen@linaro.org>
Mon, 17 Nov 2014 06:07:15 +0000 (06:07 +0000)
committerZhenqiang Chen <zqchen@gcc.gnu.org>
Mon, 17 Nov 2014 06:07:15 +0000 (06:07 +0000)
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
aarch64_ccmp_operand): New constraints.

From-SVN: r217642

gcc/ChangeLog
gcc/config/aarch64/constraints.md
gcc/config/aarch64/predicates.md

index c5da3318e8cc8a79aee0deafe6a1ced284a44fda..6e3045def0ac1161be6f2655c01caaf50a63993e 100644 (file)
@@ -1,3 +1,8 @@
+014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
+
+       * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
+       aarch64_ccmp_operand): New constraints.
+
 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
 
        * Makefile.in: Add ccmp.o.
index 807d0b172c883af48bed04ae3f03224983d7cec6..a5ce66c176a03b7fab8e07d3a61fd334bafd571a 100644 (file)
   (and (match_code "const_int")
        (match_test "(unsigned HOST_WIDE_INT) ival < 32")))
 
+(define_constraint "Usn"
+ "A constant that can be used with a CCMN operation (once negated)."
+ (and (match_code "const_int")
+      (match_test "IN_RANGE (ival, -31, 0)")))
+
 (define_constraint "Usd"
   "@internal
   A constraint that matches an immediate shift constant in DImode."
index d5b0b2a9d8dd8215a193e7fd8f4addb319f2f2a6..aa8f6f61d566f5d5406f6f21b0c6cd1b461b979e 100644 (file)
   (ior (match_code "symbol_ref")
        (match_operand 0 "register_operand")))
 
+(define_predicate "aarch64_ccmp_immediate"
+  (and (match_code "const_int")
+       (match_test "IN_RANGE (INTVAL (op), -31, 31)")))
+
+(define_predicate "aarch64_ccmp_operand"
+  (ior (match_operand 0 "register_operand")
+       (match_operand 0 "aarch64_ccmp_immediate")))
+
 (define_predicate "aarch64_simd_register"
   (and (match_code "reg")
        (ior (match_test "REGNO_REG_CLASS (REGNO (op)) == FP_LO_REGS")