i386: Clean up constraints.md
authorUros Bizjak <ubizjak@gmail.com>
Sun, 6 Jun 2021 20:07:05 +0000 (22:07 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Sun, 6 Jun 2021 20:09:51 +0000 (22:09 +0200)
No functional changes.

2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
* config/i386/constraints.md (Bs):
Remove boolean operators from match_test RTX.
(Bw): Ditto.
(L): Ditto.
(M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
(Wz): Ditto.

gcc/config/i386/constraints.md

index eaa582d..485e3f5 100644 (file)
   (ior (and (not (match_test "TARGET_INDIRECT_BRANCH_REGISTER"))
            (not (match_test "TARGET_X32"))
            (match_operand 0 "sibcall_memory_operand"))
-       (and (match_test "TARGET_X32 && Pmode == DImode")
+       (and (match_test "TARGET_X32")
+           (match_test "Pmode == DImode")
            (match_operand 0 "GOT_memory_operand"))))
 
 (define_constraint "Bw"
   (ior (and (not (match_test "TARGET_INDIRECT_BRANCH_REGISTER"))
            (not (match_test "TARGET_X32"))
            (match_operand 0 "memory_operand"))
-       (and (match_test "TARGET_X32 && Pmode == DImode")
+       (and (match_test "TARGET_X32")
+           (match_test "Pmode == DImode")
            (match_operand 0 "GOT_memory_operand"))))
 
 (define_constraint "Bz"
   "@code{0xFF}, @code{0xFFFF} or @code{0xFFFFFFFF}
    for AND as a zero-extending move."
   (and (match_code "const_int")
-       (match_test "ival == 0xff || ival == 0xffff
-                   || ival == (HOST_WIDE_INT) 0xffffffff")))
+       (ior (match_test "ival == 0xff")
+           (match_test "ival == 0xffff")
+           (match_test "ival == (HOST_WIDE_INT) 0xffffffff"))))
 
 (define_constraint "M"
   "0, 1, 2, or 3 (shifts for the @code{lea} instruction)."
    to fit that range (for sign-extending conversion operations that
    require non-VOIDmode immediate operands)."
   (and (match_operand 0 "x86_64_immediate_operand")
-       (match_test "GET_MODE (op) != VOIDmode")))
+       (match_test "mode != VOIDmode")))
 
 (define_constraint "Wz"
   "32-bit unsigned integer constant, or a symbolic reference known
    to fit that range (for zero-extending conversion operations that
    require non-VOIDmode immediate operands)."
   (and (match_operand 0 "x86_64_zext_immediate_operand")
-       (match_test "GET_MODE (op) != VOIDmode")))
+       (match_test "mode != VOIDmode")))
 
 (define_constraint "Wd"
   "128-bit integer constant where both the high and low 64-bit word