Commit 808d8de5 by Uros Bizjak Committed by Uros Bizjak

constraints.md ("C"): Do not depend on TARGET_SSE.

	* config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
	* config/i386/predicates.md (nonimm_or_0_operand): Rename
	from vector_move_operand.  Update all uses.

From-SVN: r264877
parent f3431652
2018-10-05 Uros Bizjak <ubizjak@gmail.com>
* config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
* config/i386/predicates.md (nonimm_or_0_operand): Rename
from vector_move_operand. Update all uses.
2018-10-05 Martin Sebor <msebor@redhat.com>
PR tree-optimization/87490
......@@ -254,10 +254,9 @@
;; This can theoretically be any mode's CONST0_RTX.
(define_constraint "C"
"SSE constant zero operand."
(and (match_test "TARGET_SSE")
(ior (match_test "op == const0_rtx")
(match_operand 0 "const0_operand"))))
"Constant zero operand."
(ior (match_test "op == const0_rtx")
(match_operand 0 "const0_operand")))
;; Constant-or-symbol-reference constraints.
......
......@@ -9816,7 +9816,7 @@
(define_insn_and_split "copysign<mode>3_const"
[(set (match_operand:CSGNMODE 0 "register_operand" "=Yv")
(unspec:CSGNMODE
[(match_operand:<CSGNVMODE> 1 "vector_move_operand" "YvmC")
[(match_operand:<CSGNVMODE> 1 "nonimm_or_0_operand" "YvmC")
(match_operand:CSGNMODE 2 "register_operand" "0")
(match_operand:<CSGNVMODE> 3 "nonimmediate_operand" "Yvm")]
UNSPEC_COPYSIGN))]
......
......@@ -79,7 +79,7 @@
(define_insn "*mov<mode>_internal"
[(set (match_operand:MMXMODE 0 "nonimmediate_operand"
"=r ,o ,r,r ,m ,?!y,!y,?!y,m ,r ,?!y,v,v,v,m,r,v,!y,*x")
(match_operand:MMXMODE 1 "vector_move_operand"
(match_operand:MMXMODE 1 "nonimm_or_0_operand"
"rCo,rC,C,rm,rC,C ,!y,m ,?!y,?!y,r ,C,v,m,v,v,r,*x,!y"))]
"TARGET_MMX
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))"
......@@ -582,7 +582,7 @@
[(set (match_operand:V2SF 0 "register_operand" "=y,y")
(vec_concat:V2SF
(match_operand:SF 1 "nonimmediate_operand" " 0,rm")
(match_operand:SF 2 "vector_move_operand" "ym,C")))]
(match_operand:SF 2 "nonimm_or_0_operand" "ym,C")))]
"TARGET_MMX && !TARGET_SSE"
"@
punpckldq\t{%2, %0|%0, %2}
......@@ -1276,7 +1276,7 @@
[(set (match_operand:V2SI 0 "register_operand" "=y,y")
(vec_concat:V2SI
(match_operand:SI 1 "nonimmediate_operand" " 0,rm")
(match_operand:SI 2 "vector_move_operand" "ym,C")))]
(match_operand:SI 2 "nonimm_or_0_operand" "ym,C")))]
"TARGET_MMX && !TARGET_SSE"
"@
punpckldq\t{%2, %0|%0, %2}
......
......@@ -1042,11 +1042,6 @@
(ior (match_operand 0 "register_operand")
(match_operand 0 "vector_memory_operand")))
; Return true when OP is operand acceptable for standard SSE move.
(define_predicate "vector_move_operand"
(ior (match_operand 0 "nonimmediate_operand")
(match_operand 0 "const0_operand")))
;; Return true when OP is either nonimmediate operand, or any
;; CONST_VECTOR.
(define_predicate "nonimmediate_or_const_vector_operand"
......@@ -1063,6 +1058,11 @@
(ior (match_operand 0 "register_operand")
(match_operand 0 "const0_operand")))
; Return true when OP is a nonimmediate or zero.
(define_predicate "nonimm_or_0_operand"
(ior (match_operand 0 "nonimmediate_operand")
(match_operand 0 "const0_operand")))
(define_predicate "norex_memory_operand"
(and (match_operand 0 "memory_operand")
(not (match_test "x86_extended_reg_mentioned_p (op)"))))
......
......@@ -72,7 +72,7 @@
[(set (match_dup 0)
(vec_merge:SUBST_V
(match_dup 1)
(match_operand:SUBST_V 2 "vector_move_operand" "0C")
(match_operand:SUBST_V 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")))])
(define_subst_attr "mask_scalar_merge_name" "mask_scalar_merge" "" "_mask")
......@@ -243,7 +243,7 @@
(match_dup 1)
(match_dup 2)
(match_dup 3)
(match_operand:SUBST_V 4 "vector_move_operand")
(match_operand:SUBST_V 4 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 5 "register_operand")])
(define_subst_attr "mask_scalar_name" "mask_scalar" "" "_mask")
......@@ -261,7 +261,7 @@
(vec_merge:SUBST_V
(vec_merge:SUBST_V
(match_dup 1)
(match_operand:SUBST_V 3 "vector_move_operand" "0C")
(match_operand:SUBST_V 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk"))
(match_dup 2)
(const_int 1)))])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment