(define_insn "*movhi_internal"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r ,r ,m ,Yk,Yk,rm")
- (match_operand:HI 1 "general_operand" "r ,rn,rm,rn,rm,Yk,Yk"))]
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r ,r ,m ,k,k,rm")
+ (match_operand:HI 1 "general_operand" "r ,rn,rm,rn,rm,k,k"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))"
{
switch (get_attr_type (insn))
(define_insn "*movqi_internal"
[(set (match_operand:QI 0 "nonimmediate_operand"
- "=q,q ,q ,r,r ,?r,m ,Yk,Yk,r")
+ "=q,q ,q ,r,r ,?r,m ,k,k,r")
(match_operand:QI 1 "general_operand"
- "q ,qn,qm,q,rn,qm,qn,r ,Yk,Yk"))]
+ "q ,qn,qm,q,rn,qm,qn,r ,k,k"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))"
{
switch (get_attr_type (insn))
(match_dup 2)))])
(define_insn "*k<logic><mode>"
- [(set (match_operand:SWI12 0 "mask_reg_operand" "=Yk")
- (any_logic:SWI12 (match_operand:SWI12 1 "mask_reg_operand" "Yk")
- (match_operand:SWI12 2 "mask_reg_operand" "Yk")))]
+ [(set (match_operand:SWI12 0 "mask_reg_operand" "=k")
+ (any_logic:SWI12 (match_operand:SWI12 1 "mask_reg_operand" "k")
+ (match_operand:SWI12 2 "mask_reg_operand" "k")))]
"TARGET_AVX512F"
"k<logic>w\t{%2, %1, %0|%0, %1, %2}";
[(set_attr "mode" "<MODE>")
(set_attr "mode" "SI")])
(define_insn "*andhi_1"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=rm,r,Ya,!Yk")
- (and:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,qm,Yk")
- (match_operand:HI 2 "general_operand" "rn,rm,L,Yk")))
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=rm,r,Ya,!k")
+ (and:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,qm,k")
+ (match_operand:HI 2 "general_operand" "rn,rm,L,k")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (AND, HImode, operands)"
{
;; %%% Potential partial reg stall on alternative 2. What to do?
(define_insn "*andqi_1"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,r,!Yk")
- (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0,Yk")
- (match_operand:QI 2 "general_operand" "qn,qmn,rn,Yk")))
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,r,!k")
+ (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0,k")
+ (match_operand:QI 2 "general_operand" "qn,qmn,rn,k")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (AND, QImode, operands)"
"@
(set_attr "mode" "QI")])
(define_insn "kandn<mode>"
- [(set (match_operand:SWI12 0 "register_operand" "=r,&r,!Yk")
+ [(set (match_operand:SWI12 0 "register_operand" "=r,&r,!k")
(and:SWI12
(not:SWI12
- (match_operand:SWI12 1 "register_operand" "r,0,Yk"))
- (match_operand:SWI12 2 "register_operand" "r,r,Yk")))
+ (match_operand:SWI12 1 "register_operand" "r,0,k"))
+ (match_operand:SWI12 2 "register_operand" "r,r,k")))
(clobber (reg:CC FLAGS_REG))]
"TARGET_AVX512F"
"@
(set_attr "mode" "<MODE>")])
(define_insn "*<code>hi_1"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm,!Yk")
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm,!k")
(any_or:HI
- (match_operand:HI 1 "nonimmediate_operand" "%0,0,Yk")
- (match_operand:HI 2 "general_operand" "<g>,r<i>,Yk")))
+ (match_operand:HI 1 "nonimmediate_operand" "%0,0,k")
+ (match_operand:HI 2 "general_operand" "<g>,r<i>,k")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (<CODE>, HImode, operands)"
"@
;; %%% Potential partial reg stall on alternative 2. What to do?
(define_insn "*<code>qi_1"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=q,m,r,!Yk")
- (any_or:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0,Yk")
- (match_operand:QI 2 "general_operand" "qmn,qn,rn,Yk")))
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=q,m,r,!k")
+ (any_or:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0,k")
+ (match_operand:QI 2 "general_operand" "qmn,qn,rn,k")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (<CODE>, QImode, operands)"
"@
(set_attr "mode" "<MODE>")])
(define_insn "kxnor<mode>"
- [(set (match_operand:SWI12 0 "register_operand" "=r,!Yk")
+ [(set (match_operand:SWI12 0 "register_operand" "=r,!k")
(not:SWI12
(xor:SWI12
- (match_operand:SWI12 1 "register_operand" "0,Yk")
- (match_operand:SWI12 2 "register_operand" "r,Yk"))))
+ (match_operand:SWI12 1 "register_operand" "0,k")
+ (match_operand:SWI12 2 "register_operand" "r,k"))))
(clobber (reg:CC FLAGS_REG))]
"TARGET_AVX512F"
"@
[(set (reg:CCZ FLAGS_REG)
(compare:CCZ
(ior:HI
- (match_operand:HI 0 "register_operand" "Yk")
- (match_operand:HI 1 "register_operand" "Yk"))
+ (match_operand:HI 0 "register_operand" "k")
+ (match_operand:HI 1 "register_operand" "k"))
(const_int 0)))]
"TARGET_AVX512F && ix86_match_ccmode (insn, CCZmode)"
"kortestw\t{%1, %0|%0, %1}"
[(set (reg:CCC FLAGS_REG)
(compare:CCC
(ior:HI
- (match_operand:HI 0 "register_operand" "Yk")
- (match_operand:HI 1 "register_operand" "Yk"))
+ (match_operand:HI 0 "register_operand" "k")
+ (match_operand:HI 1 "register_operand" "k"))
(const_int -1)))]
"TARGET_AVX512F && ix86_match_ccmode (insn, CCCmode)"
"kortestw\t{%1, %0|%0, %1}"
(set_attr "prefix" "vex")])
(define_insn "kunpckhi"
- [(set (match_operand:HI 0 "register_operand" "=Yk")
+ [(set (match_operand:HI 0 "register_operand" "=k")
(ior:HI
(ashift:HI
- (match_operand:HI 1 "register_operand" "Yk")
+ (match_operand:HI 1 "register_operand" "k")
(const_int 8))
- (zero_extend:HI (match_operand:QI 2 "register_operand" "Yk"))))]
+ (zero_extend:HI (match_operand:QI 2 "register_operand" "k"))))]
"TARGET_AVX512F"
"kunpckbw\t{%2, %1, %0|%0, %1, %2}"
[(set_attr "mode" "HI")
(set_attr "mode" "<MODE>")])
(define_insn "*one_cmplhi2_1"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=rm,!Yk")
- (not:HI (match_operand:HI 1 "nonimmediate_operand" "0,Yk")))]
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=rm,!k")
+ (not:HI (match_operand:HI 1 "nonimmediate_operand" "0,k")))]
"ix86_unary_operator_ok (NOT, HImode, operands)"
"@
not{w}\t%0
;; %%% Potential partial reg stall on alternative 1. What to do?
(define_insn "*one_cmplqi2_1"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,r,!Yk")
- (not:QI (match_operand:QI 1 "nonimmediate_operand" "0,0,Yk")))]
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,r,!k")
+ (not:QI (match_operand:QI 1 "nonimmediate_operand" "0,0,k")))]
"ix86_unary_operator_ok (NOT, QImode, operands)"
"@
not{b}\t%0
(vec_merge:VI48F_512
(match_operand:VI48F_512 1 "nonimmediate_operand" "v,m")
(match_operand:VI48F_512 2 "vector_move_operand" "0C,0C")
- (match_operand:<avx512fmaskmode> 3 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
{
switch (MODE_<sseinsnmode>)
(vec_merge:VI48F_512
(match_operand:VI48F_512 2 "nonimmediate_operand" "vm")
(match_operand:VI48F_512 1 "register_operand" "v")
- (match_operand:<avx512fmaskmode> 3 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")))]
"TARGET_AVX512F"
"v<sseintprefix>blendm<ssemodesuffix>\t{%2, %1, %0%{%3%}|%0%{%3%}, %1, %2}"
[(set_attr "type" "ssemov")
(vec_merge:VI48F_512
(match_operand:VI48F_512 1 "register_operand" "v")
(match_dup 0)
- (match_operand:<avx512fmaskmode> 2 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")))]
"TARGET_AVX512F"
{
switch (MODE_<sseinsnmode>)
[(match_operand:VF_512 1 "register_operand" "v")]
UNSPEC_STOREU)
(match_dup 0)
- (match_operand:<avx512fmaskmode> 2 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")))]
"TARGET_AVX512F"
{
switch (get_attr_mode (insn))
[(match_operand:VI48_512 1 "register_operand" "v")]
UNSPEC_STOREU)
(match_dup 0)
- (match_operand:<avx512fmaskmode> 2 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")))]
"TARGET_AVX512F"
{
if (<MODE>mode == V8DImode)
(V16SI "const_0_to_7_operand") (V8DI "const_0_to_7_operand")])
(define_insn "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48F_512 1 "register_operand" "v")
(match_operand:VI48F_512 2 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")
(set_attr "mode" "<sseinsnmode>")])
(define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48_512 1 "register_operand" "v")
(match_operand:VI48_512 2 "nonimmediate_operand" "vm")
(set_attr "mode" "<sseinsnmode>")])
(define_insn "avx512f_vmcmp<mode>3<round_saeonly_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(and:<avx512fmaskmode>
(unspec:<avx512fmaskmode>
[(match_operand:VF_128 1 "register_operand" "v")
(set_attr "mode" "<ssescalarmode>")])
(define_insn "avx512f_vmcmp<mode>3_mask<round_saeonly_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(and:<avx512fmaskmode>
(unspec:<avx512fmaskmode>
[(match_operand:VF_128 1 "register_operand" "v")
(match_operand:SI 3 "const_0_to_31_operand" "n")]
UNSPEC_PCMP)
(and:<avx512fmaskmode>
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")
(const_int 1))))]
"TARGET_AVX512F"
"vcmp<ssescalarmodesuffix>\t{%3, <round_saeonly_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_saeonly_op5>, %3}"
(set_attr "mode" "<ssescalarmode>")])
(define_insn "avx512f_maskcmp<mode>3"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(match_operator:<avx512fmaskmode> 3 "sse_comparison_operator"
[(match_operand:VF 1 "register_operand" "v")
(match_operand:VF 2 "nonimmediate_operand" "vm")]))]
(match_operand:VF_512 2 "<round_nimm_predicate>" "<round_constraint>,v")
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>"))
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfmadd132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(match_operand:VF_512 2 "<round_nimm_predicate>" "<round_constraint>")
(match_operand:VF_512 3 "register_operand" "0"))
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfmadd231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(neg:VF_512
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>")))
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfmsub132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(neg:VF_512
(match_operand:VF_512 3 "register_operand" "0")))
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfmsub231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(match_operand:VF_512 2 "<round_nimm_predicate>" "<round_constraint>,v")
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>"))
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfnmadd132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(match_operand:VF_512 2 "<round_nimm_predicate>" "<round_constraint>")
(match_operand:VF_512 3 "register_operand" "0"))
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfnmadd231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(neg:VF_512
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>")))
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfnmsub132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(neg:VF_512
(match_operand:VF_512 3 "register_operand" "0")))
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfnmsub231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>")]
UNSPEC_FMADDSUB)
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfmaddsub132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(match_operand:VF_512 3 "register_operand" "0")]
UNSPEC_FMADDSUB)
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfmaddsub231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(match_operand:VF_512 3 "<round_nimm_predicate>" "v,<round_constraint>"))]
UNSPEC_FMADDSUB)
(match_dup 1)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"@
vfmsubadd132<ssemodesuffix>\t{<round_op5>%2, %3, %0%{%4%}|%0%{%4%}, %3, %2<round_op5>}
(match_operand:VF_512 3 "register_operand" "0"))]
UNSPEC_FMADDSUB)
(match_dup 3)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfmsubadd231<ssemodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %1, %2<round_op5>}"
[(set_attr "isa" "fma_avx512f")
(match_operand 4 "const_0_to_15_operand")
(match_operand 5 "const_0_to_15_operand")]))
(match_operand:<ssequartermode> 6 "memory_operand" "0")
- (match_operand:QI 7 "register_operand" "k")))]
+ (match_operand:QI 7 "register_operand" "Yk")))]
"TARGET_AVX512F && (INTVAL (operands[2]) = INTVAL (operands[3]) - 1)
&& (INTVAL (operands[3]) = INTVAL (operands[4]) - 1)
&& (INTVAL (operands[4]) = INTVAL (operands[5]) - 1)"
(parallel [(const_int 0) (const_int 1)
(const_int 2) (const_int 3)]))
(match_operand:<ssehalfvecmode> 2 "memory_operand" "0")
- (match_operand:QI 3 "register_operand" "k")))]
+ (match_operand:QI 3 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vextract<shuffletype>64x4\t{$0x0, %1, %0%{%3%}|%0%{%3%}, %1, 0x0}"
[(set_attr "type" "sselog")
(parallel [(const_int 4) (const_int 5)
(const_int 6) (const_int 7)]))
(match_operand:<ssehalfvecmode> 2 "memory_operand" "0")
- (match_operand:QI 3 "register_operand" "k")))]
+ (match_operand:QI 3 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vextract<shuffletype>64x4\t{$0x1, %1, %0%{%3%}|%0%{%3%}, %1, 0x1}"
[(set_attr "type" "sselog")
(match_operand:SI 4 "const_0_to_255_operand")]
UNSPEC_VTERNLOG)
(match_dup 1)
- (match_operand:<avx512fmaskmode> 5 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 5 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vpternlog<ssemodesuffix>\t{%4, %3, %2, %0%{%5%}|%0%{%5%}, %2, %3, %4}"
[(set_attr "type" "sselog")
(match_operand:SI 4 "const_0_to_255_operand")]
UNSPEC_FIXUPIMM)
(match_dup 1)
- (match_operand:<avx512fmaskmode> 5 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 5 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfixupimm<ssemodesuffix>\t{%4, <round_saeonly_op6>%3, %2, %0%{%5%}|%0%{%5%}, %2, %3<round_saeonly_op6>, %4}";
[(set_attr "prefix" "evex")
(match_dup 1)
(const_int 1))
(match_dup 1)
- (match_operand:<avx512fmaskmode> 5 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 5 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vfixupimm<ssescalarmodesuffix>\t{%4, <round_saeonly_op6>%3, %2, %0%{%5%}|%0%{%5%}, %2, %3<round_saeonly_op6>, %4}";
[(set_attr "prefix" "evex")
(any_truncate:PMOV_DST_MODE
(match_operand:<pmov_src_mode> 1 "register_operand" "v,v"))
(match_operand:PMOV_DST_MODE 2 "vector_move_operand" "0C,0")
- (match_operand:<avx512fmaskmode> 3 "register_operand" "k,k")))]
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"vpmov<trunsuffix><pmov_suff>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
[(set_attr "type" "ssemov")
(const_int 2) (const_int 3)
(const_int 4) (const_int 5)
(const_int 6) (const_int 7)]))
- (match_operand:QI 3 "register_operand" "k"))
+ (match_operand:QI 3 "register_operand" "Yk"))
(const_vector:V8QI [(const_int 0) (const_int 0)
(const_int 0) (const_int 0)
(const_int 0) (const_int 0)
(const_int 2) (const_int 3)
(const_int 4) (const_int 5)
(const_int 6) (const_int 7)]))
- (match_operand:QI 2 "register_operand" "k"))
+ (match_operand:QI 2 "register_operand" "Yk"))
(vec_select:V8QI
(match_dup 0)
(parallel [(const_int 8) (const_int 9)
"ix86_fixup_binary_operands_no_copy (EQ, <MODE>mode, operands);")
(define_insn "avx512f_eq<mode>3<mask_scalar_merge_name>_1"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48_512 1 "register_operand" "%v")
(match_operand:VI48_512 2 "nonimmediate_operand" "vm")]
(set_attr "mode" "OI")])
(define_insn "avx512f_gt<mode>3<mask_scalar_merge_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48_512 1 "register_operand" "v")
(match_operand:VI48_512 2 "nonimmediate_operand" "vm")] UNSPEC_MASKED_GT))]
(const_string "<sseinsnmode>")))])
(define_insn "avx512f_testm<mode>3<mask_scalar_merge_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48_512 1 "register_operand" "v")
(match_operand:VI48_512 2 "nonimmediate_operand" "vm")]
(set_attr "mode" "<sseinsnmode>")])
(define_insn "avx512f_testnm<mode>3<mask_scalar_merge_name>"
- [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
+ [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
(unspec:<avx512fmaskmode>
[(match_operand:VI48_512 1 "register_operand" "v")
(match_operand:VI48_512 2 "nonimmediate_operand" "vm")]
(define_insn "*avx512pf_gatherpf<mode>sf_mask"
[(unspec
- [(match_operand:<avx512fmaskmode> 0 "register_operand" "k")
+ [(match_operand:<avx512fmaskmode> 0 "register_operand" "Yk")
(match_operator:<GATHER_SCATTER_SF_MEM_MODE> 5 "vsib_mem_operator"
[(unspec:P
[(match_operand:P 2 "vsib_address_operand" "Tv")
(define_insn "*avx512pf_gatherpf<mode>df_mask"
[(unspec
- [(match_operand:<avx512fmaskmode> 0 "register_operand" "k")
+ [(match_operand:<avx512fmaskmode> 0 "register_operand" "Yk")
(match_operator:V8DF 5 "vsib_mem_operator"
[(unspec:P
[(match_operand:P 2 "vsib_address_operand" "Tv")
(define_insn "*avx512pf_scatterpf<mode>sf_mask"
[(unspec
- [(match_operand:<avx512fmaskmode> 0 "register_operand" "k")
+ [(match_operand:<avx512fmaskmode> 0 "register_operand" "Yk")
(match_operator:<GATHER_SCATTER_SF_MEM_MODE> 5 "vsib_mem_operator"
[(unspec:P
[(match_operand:P 2 "vsib_address_operand" "Tv")
(define_insn "*avx512pf_scatterpf<mode>df_mask"
[(unspec
- [(match_operand:<avx512fmaskmode> 0 "register_operand" "k")
+ [(match_operand:<avx512fmaskmode> 0 "register_operand" "Yk")
(match_operator:V8DF 5 "vsib_mem_operator"
[(unspec:P
[(match_operand:P 2 "vsib_address_operand" "Tv")
[(set (match_operand:V8DI 0 "register_operand" "=v")
(vec_duplicate:V8DI
(zero_extend:DI
- (match_operand:QI 1 "register_operand" "k"))))]
+ (match_operand:QI 1 "register_operand" "Yk"))))]
"TARGET_AVX512CD"
"vpbroadcastmb2q\t{%1, %0|%0, %1}"
[(set_attr "type" "mskmov")
[(set (match_operand:V16SI 0 "register_operand" "=v")
(vec_duplicate:V16SI
(zero_extend:SI
- (match_operand:HI 1 "register_operand" "k"))))]
+ (match_operand:HI 1 "register_operand" "Yk"))))]
"TARGET_AVX512CD"
"vpbroadcastmw2d\t{%1, %0|%0, %1}"
[(set_attr "type" "mskmov")
(match_operand:VI48F_512 1 "register_operand" "v")
(match_operand:<sseintvecmode> 2 "register_operand" "0")
(match_operand:VI48F_512 3 "nonimmediate_operand" "vm")
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
"TARGET_AVX512F"
{
emit_insn (gen_avx512f_vpermi2var<mode>3_maskz_1 (
(match_operand:VI48F_512 3 "nonimmediate_operand" "vm")]
UNSPEC_VPERMI2_MASK)
(match_dup 0)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vpermi2<ssemodesuffix>\t{%3, %1, %0%{%4%}|%0%{%4%}, %1, %3}"
[(set_attr "type" "sselog")
(match_operand:<sseintvecmode> 1 "register_operand" "v")
(match_operand:VI48F_512 2 "register_operand" "0")
(match_operand:VI48F_512 3 "nonimmediate_operand" "vm")
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
"TARGET_AVX512F"
{
emit_insn (gen_avx512f_vpermt2var<mode>3_maskz_1 (
(match_operand:VI48F_512 3 "nonimmediate_operand" "vm")]
UNSPEC_VPERMT2)
(match_dup 2)
- (match_operand:<avx512fmaskmode> 4 "register_operand" "k")))]
+ (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vpermt2<ssemodesuffix>\t{%3, %1, %0%{%4%}|%0%{%4%}, %1, %3}"
[(set_attr "type" "sselog")
(match_operand:SI 5 "const1248_operand" "n")]
UNSPEC_VSIBADDR)])]
UNSPEC_GATHER))
- (clobber (match_scratch:<avx512fmaskmode> 2 "=&k"))]
+ (clobber (match_scratch:<avx512fmaskmode> 2 "=&Yk"))]
"TARGET_AVX512F"
"v<sseintprefix>gatherd<ssemodesuffix>\t{%6, %0%{%2%}|%0%{%2%}, %g6}"
[(set_attr "type" "ssemov")
(match_operand:SI 4 "const1248_operand" "n")]
UNSPEC_VSIBADDR)])]
UNSPEC_GATHER))
- (clobber (match_scratch:<avx512fmaskmode> 1 "=&k"))]
+ (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
"TARGET_AVX512F"
"v<sseintprefix>gatherd<ssemodesuffix>\t{%5, %0%{%1%}|%0%{%1%}, %g5}"
[(set_attr "type" "ssemov")
(match_operand:SI 5 "const1248_operand" "n")]
UNSPEC_VSIBADDR)])]
UNSPEC_GATHER))
- (clobber (match_scratch:QI 2 "=&k"))]
+ (clobber (match_scratch:QI 2 "=&Yk"))]
"TARGET_AVX512F"
"v<sseintprefix>gatherq<ssemodesuffix>\t{%6, %1%{%2%}|%1%{%2%}, %g6}"
[(set_attr "type" "ssemov")
(match_operand:SI 4 "const1248_operand" "n")]
UNSPEC_VSIBADDR)])]
UNSPEC_GATHER))
- (clobber (match_scratch:QI 1 "=&k"))]
+ (clobber (match_scratch:QI 1 "=&Yk"))]
"TARGET_AVX512F"
{
if (<MODE>mode != <VEC_GATHER_SRCDI>mode)
[(match_operand:<avx512fmaskmode> 6 "register_operand" "1")
(match_operand:VI48F_512 3 "register_operand" "v")]
UNSPEC_SCATTER))
- (clobber (match_scratch:<avx512fmaskmode> 1 "=&k"))]
+ (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
"TARGET_AVX512F"
"v<sseintprefix>scatterd<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}"
[(set_attr "type" "ssemov")
[(match_operand:QI 6 "register_operand" "1")
(match_operand:<VEC_GATHER_SRCDI> 3 "register_operand" "v")]
UNSPEC_SCATTER))
- (clobber (match_scratch:QI 1 "=&k"))]
+ (clobber (match_scratch:QI 1 "=&Yk"))]
"TARGET_AVX512F"
"v<sseintprefix>scatterq<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}"
[(set_attr "type" "ssemov")
(unspec:VI48F_512
[(match_operand:VI48F_512 1 "register_operand" "v")
(match_operand:VI48F_512 2 "vector_move_operand" "0C")
- (match_operand:<avx512fmaskmode> 3 "register_operand" "k")]
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")]
UNSPEC_COMPRESS))]
"TARGET_AVX512F"
"v<sseintprefix>compress<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(unspec:VI48F_512
[(match_operand:VI48F_512 1 "register_operand" "x")
(match_dup 0)
- (match_operand:<avx512fmaskmode> 2 "register_operand" "k")]
+ (match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")]
UNSPEC_COMPRESS_STORE))]
"TARGET_AVX512F"
"v<sseintprefix>compress<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}"
(unspec:VI48F_512
[(match_operand:VI48F_512 1 "nonimmediate_operand" "v,m")
(match_operand:VI48F_512 2 "vector_move_operand" "0C,0C")
- (match_operand:<avx512fmaskmode> 3 "register_operand" "k,k")]
+ (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")]
UNSPEC_EXPAND))]
"TARGET_AVX512F"
"v<sseintprefix>expand<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"