Hello!

No functional changes.

2016-04-25  Uros Bizjak  <ubiz...@gmail.com>

    * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
    predicate for operand 2.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
Index: i386.md
===================================================================
--- i386.md     (revision 235396)
+++ i386.md     (working copy)
@@ -6291,10 +6291,9 @@
        (any_or:SWI12
          (ashift:SWI12
            (match_operand:SWI12 1 "index_register_operand" "l")
-           (match_operand:SWI12 2 "const_int_operand" "n"))
+           (match_operand:SWI12 2 "const_0_to_3_operand" "n"))
          (match_operand:SWI12 3 "const_int_operand" "n")))]
   "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
-   && (unsigned HOST_WIDE_INT) INTVAL (operands[2]) <= 3
    && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
        < (HOST_WIDE_INT_1U << INTVAL (operands[2])))"
   "#"
@@ -6316,11 +6315,10 @@
        (any_or:SWI48
          (ashift:SWI48
            (match_operand:SWI48 1 "index_register_operand" "l")
-           (match_operand:SWI48 2 "const_int_operand" "n"))
+           (match_operand:SWI48 2 "const_0_to_3_operand" "n"))
          (match_operand:SWI48 3 "const_int_operand" "n")))]
-  "(unsigned HOST_WIDE_INT) INTVAL (operands[2]) <= 3
-   && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
-       < (HOST_WIDE_INT_1U << INTVAL (operands[2])))"
+  "(unsigned HOST_WIDE_INT) INTVAL (operands[3])
+   < (HOST_WIDE_INT_1U << INTVAL (operands[2]))"
   "#"
   "&& reload_completed"
   [(set (match_dup 0)

Reply via email to