[(set (match_operand:V48_AVX512VL 0 "register_operand" "=v,v")
(vec_merge:V48_AVX512VL
(match_operand:V48_AVX512VL 1 "nonimmediate_operand" "v,m")
- (match_operand:V48_AVX512VL 2 "vector_move_operand" "0C,0C")
+ (match_operand:V48_AVX512VL 2 "nonimm_or_0_operand" "0C,0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
{
[(set (match_operand:VI12_AVX512VL 0 "register_operand" "=v,v")
(vec_merge:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "v,m")
- (match_operand:VI12_AVX512VL 2 "vector_move_operand" "0C,0C")
+ (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand" "0C,0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512BW"
"vmovdqu<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(unspec:VF_128
[(match_operand:VF_128 1 "nonimmediate_operand" "vm")]
UNSPEC_RCP14)
- (match_operand:VF_128 3 "vector_move_operand" "0C")
+ (match_operand:VF_128 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk"))
(match_operand:VF_128 2 "register_operand" "v")
(const_int 1)))]
(unspec:VF_128
[(match_operand:VF_128 1 "nonimmediate_operand" "vm")]
UNSPEC_RSQRT14)
- (match_operand:VF_128 3 "vector_move_operand" "0C")
+ (match_operand:VF_128 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk"))
(match_operand:VF_128 2 "register_operand" "v")
(const_int 1)))]
[(set (match_operand:V48_AVX512VL 0 "register_operand")
(vec_merge:V48_AVX512VL
(match_operand:V48_AVX512VL 1 "nonimmediate_operand")
- (match_operand:V48_AVX512VL 2 "vector_move_operand")
+ (match_operand:V48_AVX512VL 2 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 3 "register_operand")))]
"TARGET_AVX512F")
[(set (match_operand:VI12_AVX512VL 0 "register_operand")
(vec_merge:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "nonimmediate_operand")
- (match_operand:VI12_AVX512VL 2 "vector_move_operand")
+ (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 3 "register_operand")))]
"TARGET_AVX512BW")
[(set (match_operand:VI_256 0 "register_operand")
(vec_merge:VI_256
(match_operand:VI_256 1 "nonimmediate_operand")
- (match_operand:VI_256 2 "vector_move_operand")
+ (match_operand:VI_256 2 "nonimm_or_0_operand")
(match_operand:<sseintvecmode> 3 "register_operand")))]
"TARGET_AVX2"
{
[(set (match_operand:VI124_128 0 "register_operand")
(vec_merge:VI124_128
(match_operand:VI124_128 1 "vector_operand")
- (match_operand:VI124_128 2 "vector_move_operand")
+ (match_operand:VI124_128 2 "nonimm_or_0_operand")
(match_operand:<sseintvecmode> 3 "register_operand")))]
"TARGET_SSE2"
{
[(set (match_operand:V2DI 0 "register_operand")
(vec_merge:V2DI
(match_operand:V2DI 1 "vector_operand")
- (match_operand:V2DI 2 "vector_move_operand")
+ (match_operand:V2DI 2 "nonimm_or_0_operand")
(match_operand:V2DI 3 "register_operand")))]
"TARGET_SSE4_2"
{
[(set (match_operand:VF_256 0 "register_operand")
(vec_merge:VF_256
(match_operand:VF_256 1 "nonimmediate_operand")
- (match_operand:VF_256 2 "vector_move_operand")
+ (match_operand:VF_256 2 "nonimm_or_0_operand")
(match_operand:<sseintvecmode> 3 "register_operand")))]
"TARGET_AVX"
{
[(set (match_operand:VF_128 0 "register_operand")
(vec_merge:VF_128
(match_operand:VF_128 1 "vector_operand")
- (match_operand:VF_128 2 "vector_move_operand")
+ (match_operand:VF_128 2 "nonimm_or_0_operand")
(match_operand:<sseintvecmode> 3 "register_operand")))]
"TARGET_SSE"
{
(vec_merge:V2SF
(any_float:V2SF (match_operand:V2DI 1 "nonimmediate_operand" "vm"))
(vec_select:V2SF
- (match_operand:V4SF 2 "vector_move_operand" "0C")
+ (match_operand:V4SF 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)]))
(match_operand:QI 3 "register_operand" "Yk"))
(const_vector:V2SF [(const_int 0) (const_int 0)])))]
(match_operand:V4SF 2 "nonimmediate_operand" "vm"))
(parallel [(const_int 0) (const_int 4)
(const_int 1) (const_int 5)]))
- (match_operand:V4SF 3 "vector_move_operand" "0C")
+ (match_operand:V4SF 3 "nonimm_or_0_operand" "0C")
(match_operand:QI 4 "register_operand" "Yk")))]
"TARGET_AVX512VL"
"vunpcklps\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}"
(match_operand 4 "const_0_to_3_operand")
(match_operand 5 "const_4_to_7_operand")
(match_operand 6 "const_4_to_7_operand")]))
- (match_operand:V4SF 7 "vector_move_operand" "0C")
+ (match_operand:V4SF 7 "nonimm_or_0_operand" "0C")
(match_operand:QI 8 "register_operand" "Yk")))]
"TARGET_AVX512VL"
{
(vec_concat:V2SF
(match_operand:SF 1 "nonimmediate_operand"
" 0, 0,Yv, 0,0, v,m, 0 , m")
- (match_operand:SF 2 "vector_move_operand"
+ (match_operand:SF 2 "nonimm_or_0_operand"
" Yr,*x,Yv, m,m, m,C,*ym, C")))]
"TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
(vec_duplicate:VI4F_128
(match_operand:<ssescalarmode> 2 "general_operand"
" Yr,*x,v,m,r ,m,x,v,*rm,*rm,*rm,!x,!*re,!*fF"))
- (match_operand:VI4F_128 1 "vector_move_operand"
+ (match_operand:VI4F_128 1 "nonimm_or_0_operand"
" C , C,C,C,C ,C,0,v,0 ,0 ,x ,0 ,0 ,0")
(const_int 1)))]
"TARGET_SSE"
[(match_operand:<ssehalfvecmode> 0 "nonimmediate_operand")
(match_operand:VI48F_256 1 "register_operand")
(match_operand:SI 2 "const_0_to_1_operand")
- (match_operand:<ssehalfvecmode> 3 "vector_move_operand")
+ (match_operand:<ssehalfvecmode> 3 "nonimm_or_0_operand")
(match_operand:QI 4 "register_operand")]
"TARGET_AVX512DQ && TARGET_AVX512VL"
{
(match_operand:VI4F_256 1 "register_operand" "v")
(parallel [(const_int 4) (const_int 5)
(const_int 6) (const_int 7)]))
- (match_operand:<ssehalfvecmode> 2 "vector_move_operand" "0C")
+ (match_operand:<ssehalfvecmode> 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")))]
"TARGET_AVX512VL"
"vextract<shuffletype>32x4\t{$0x1, %1, %0%{%3%}%N2|%0%{%3%}%N2, %1, 0x1}"
(match_operand:V2DF 1 "register_operand" "v")
(match_operand:V2DF 2 "nonimmediate_operand" "vm"))
(parallel [(const_int 1) (const_int 3)]))
- (match_operand:V2DF 3 "vector_move_operand" "0C")
+ (match_operand:V2DF 3 "nonimm_or_0_operand" "0C")
(match_operand:QI 4 "register_operand" "Yk")))]
"TARGET_AVX512VL"
"vunpckhpd\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}"
(match_operand:V2DF 1 "register_operand" "v")
(match_operand:V2DF 2 "nonimmediate_operand" "vm"))
(parallel [(const_int 0) (const_int 2)]))
- (match_operand:V2DF 3 "vector_move_operand" "0C")
+ (match_operand:V2DF 3 "nonimm_or_0_operand" "0C")
(match_operand:QI 4 "register_operand" "Yk")))]
"TARGET_AVX512VL"
"vunpcklpd\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}"
(match_operand:V2DF 2 "nonimmediate_operand" "vm"))
(parallel [(match_operand 3 "const_0_to_1_operand")
(match_operand 4 "const_2_to_3_operand")]))
- (match_operand:V2DF 5 "vector_move_operand" "0C")
+ (match_operand:V2DF 5 "nonimm_or_0_operand" "0C")
(match_operand:QI 6 "register_operand" "Yk")))]
"TARGET_AVX512VL"
{
(match_operand:DF 2 "nonimmediate_operand"
"vm,m,m,x,v,0,0,v,x,*f,r")
(vec_select:DF
- (match_operand:V2DF 1 "vector_move_operand"
+ (match_operand:V2DF 1 "nonimm_or_0_operand"
" C,0,v,0,v,x,o,o,0,0 ,0")
(parallel [(const_int 1)]))))]
"TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
[(set (match_operand:V2DF 0 "register_operand" "=x,x,v,x,v,x,x, v,x,x")
(vec_concat:V2DF
(match_operand:DF 1 "nonimmediate_operand" " 0,x,v,m,m,0,x,xm,0,0")
- (match_operand:DF 2 "vector_move_operand" " x,x,v,1,1,m,m, C,x,m")))]
+ (match_operand:DF 2 "nonimm_or_0_operand" " x,x,v,1,1,m,m, C,x,m")))]
"TARGET_SSE
&& (!(MEM_P (operands[1]) && MEM_P (operands[2]))
|| (TARGET_SSE3 && rtx_equal_p (operands[1], operands[2])))"
(vec_merge:PMOV_DST_MODE_1
(any_truncate:PMOV_DST_MODE_1
(match_operand:<pmov_src_mode> 1 "register_operand" "v,v"))
- (match_operand:PMOV_DST_MODE_1 2 "vector_move_operand" "0C,0")
+ (match_operand:PMOV_DST_MODE_1 2 "nonimm_or_0_operand" "0C,0")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F"
"vpmov<trunsuffix><pmov_suff_1>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(vec_merge:V32QI
(any_truncate:V32QI
(match_operand:V32HI 1 "register_operand" "v,v"))
- (match_operand:V32QI 2 "vector_move_operand" "0C,0")
+ (match_operand:V32QI 2 "nonimm_or_0_operand" "0C,0")
(match_operand:SI 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512BW"
"vpmov<trunsuffix>wb\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(vec_merge:PMOV_DST_MODE_2
(any_truncate:PMOV_DST_MODE_2
(match_operand:<ssedoublemode> 1 "register_operand" "v,v"))
- (match_operand:PMOV_DST_MODE_2 2 "vector_move_operand" "0C,0")
+ (match_operand:PMOV_DST_MODE_2 2 "nonimm_or_0_operand" "0C,0")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512VL"
"vpmov<trunsuffix><pmov_suff_2>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(any_truncate:V2QI
(match_operand:V2DI 1 "register_operand" "v"))
(vec_select:V2QI
- (match_operand:V16QI 2 "vector_move_operand" "0C")
+ (match_operand:V16QI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)]))
(match_operand:QI 3 "register_operand" "Yk"))
(const_vector:V14QI [(const_int 0) (const_int 0)
(any_truncate:V4QI
(match_operand:VI4_128_8_256 1 "register_operand" "v"))
(vec_select:V4QI
- (match_operand:V16QI 2 "vector_move_operand" "0C")
+ (match_operand:V16QI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)
(const_int 2) (const_int 3)]))
(match_operand:QI 3 "register_operand" "Yk"))
(any_truncate:V8QI
(match_operand:VI2_128_BW_4_256 1 "register_operand" "v"))
(vec_select:V8QI
- (match_operand:V16QI 2 "vector_move_operand" "0C")
+ (match_operand:V16QI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)
(const_int 2) (const_int 3)
(const_int 4) (const_int 5)
(any_truncate:V4HI
(match_operand:VI4_128_8_256 1 "register_operand" "v"))
(vec_select:V4HI
- (match_operand:V8HI 2 "vector_move_operand" "0C")
+ (match_operand:V8HI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)
(const_int 2) (const_int 3)]))
(match_operand:QI 3 "register_operand" "Yk"))
(any_truncate:V2HI
(match_operand:V2DI 1 "register_operand" "v"))
(vec_select:V2HI
- (match_operand:V8HI 2 "vector_move_operand" "0C")
+ (match_operand:V8HI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)]))
(match_operand:QI 3 "register_operand" "Yk"))
(const_vector:V6HI [(const_int 0) (const_int 0)
(any_truncate:V2SI
(match_operand:V2DI 1 "register_operand" "v"))
(vec_select:V2SI
- (match_operand:V4SI 2 "vector_move_operand" "0C")
+ (match_operand:V4SI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)]))
(match_operand:QI 3 "register_operand" "Yk"))
(const_vector:V2SI [(const_int 0) (const_int 0)])))]
(any_truncate:V8QI
(match_operand:V8DI 1 "register_operand" "v"))
(vec_select:V8QI
- (match_operand:V16QI 2 "vector_move_operand" "0C")
+ (match_operand:V16QI 2 "nonimm_or_0_operand" "0C")
(parallel [(const_int 0) (const_int 1)
(const_int 2) (const_int 3)
(const_int 4) (const_int 5)
(plusminus:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
(match_operand:VI48_AVX512VL 2 "nonimmediate_operand"))
- (match_operand:VI48_AVX512VL 3 "vector_move_operand")
+ (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")))]
"TARGET_AVX512F"
"ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
(plusminus:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "nonimmediate_operand")
(match_operand:VI12_AVX512VL 2 "nonimmediate_operand"))
- (match_operand:VI12_AVX512VL 3 "vector_move_operand")
+ (match_operand:VI12_AVX512VL 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")))]
"TARGET_AVX512BW"
"ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
(plusminus:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "<comm>v")
(match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm"))
- (match_operand:VI48_AVX512VL 3 "vector_move_operand" "0C")
+ (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
"vp<plusminus_mnemonic><ssemodesuffix>\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}"
(plusminus:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "<comm>v")
(match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm"))
- (match_operand:VI12_AVX512VL 3 "vector_move_operand" "0C")
+ (match_operand:VI12_AVX512VL 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512BW && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
"vp<plusminus_mnemonic><ssemodesuffix>\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}"
(maxmin:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
(match_operand:VI48_AVX512VL 2 "nonimmediate_operand"))
- (match_operand:VI48_AVX512VL 3 "vector_move_operand")
+ (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")))]
"TARGET_AVX512F"
"ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
(define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
[(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk,Yk")
(unspec:<avx512fmaskmode>
- [(match_operand:VI12_AVX512VL 1 "vector_move_operand" "%v,v")
- (match_operand:VI12_AVX512VL 2 "vector_move_operand" "vm,C")]
+ [(match_operand:VI12_AVX512VL 1 "nonimm_or_0_operand" "%v,v")
+ (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand" "vm,C")]
UNSPEC_MASKED_EQ))]
"TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
(define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
[(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk,Yk")
(unspec:<avx512fmaskmode>
- [(match_operand:VI48_AVX512VL 1 "vector_move_operand" "%v,v")
- (match_operand:VI48_AVX512VL 2 "vector_move_operand" "vm,C")]
+ [(match_operand:VI48_AVX512VL 1 "nonimm_or_0_operand" "%v,v")
+ (match_operand:VI48_AVX512VL 2 "nonimm_or_0_operand" "vm,C")]
UNSPEC_MASKED_EQ))]
"TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
(not:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "register_operand"))
(match_operand:VI48_AVX512VL 2 "nonimmediate_operand"))
- (match_operand:VI48_AVX512VL 3 "vector_move_operand")
+ (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")))]
"TARGET_AVX512F")
(not:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "register_operand"))
(match_operand:VI12_AVX512VL 2 "nonimmediate_operand"))
- (match_operand:VI12_AVX512VL 3 "vector_move_operand")
+ (match_operand:VI12_AVX512VL 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")))]
"TARGET_AVX512BW")
(not:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "register_operand" "v"))
(match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm"))
- (match_operand:VI48_AVX512VL 3 "vector_move_operand" "0C")
+ (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vpandn<ssemodesuffix>\t{%2, %1, %0%{%4%}%N3|%0%{%4%}%N3, %1, %2}";
(vec_concat:V2SI
(match_operand:SI 1 "nonimmediate_operand"
" 0, 0, x,Yv, 0, 0,Yv,rm, 0,rm")
- (match_operand:SI 2 "vector_move_operand"
+ (match_operand:SI 2 "nonimm_or_0_operand"
" rm,rm,rm,rm,Yr,*x,Yv, C,*ym, C")))]
"TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
(vec_concat:V2DI
(match_operand:DI 1 "nonimmediate_operand"
" 0, 0,x ,Yv,r,vm,?!*y,0,Yv,0,0,v")
- (match_operand:DI 2 "vector_move_operand"
+ (match_operand:DI 2 "nonimm_or_0_operand"
" rm,rm,rm,rm,C ,C ,C ,x,Yv,x,m,m")))]
"TARGET_SSE"
"@
(match_operand:VI1_AVX512 2 "nonimmediate_operand" "vm")
(match_operand:SI 3 "const_0_to_255_mul_8_operand" "n")]
UNSPEC_PALIGNR)
- (match_operand:VI1_AVX512 4 "vector_move_operand" "0C")
+ (match_operand:VI1_AVX512 4 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 5 "register_operand" "Yk")))]
"TARGET_AVX512BW && (<MODE_SIZE> == 64 || TARGET_AVX512VL)"
{
(vec_merge:VI48_AVX512VL
(abs:VI48_AVX512VL
(match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "vm"))
- (match_operand:VI48_AVX512VL 2 "vector_move_operand" "0C")
+ (match_operand:VI48_AVX512VL 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")))]
"TARGET_AVX512F"
"vpabs<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
(vec_merge:VI12_AVX512VL
(abs:VI12_AVX512VL
(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "vm"))
- (match_operand:VI12_AVX512VL 2 "vector_move_operand" "0C")
+ (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")))]
"TARGET_AVX512BW"
"vpabs<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
[(match_operand:VI8F_256 0 "register_operand")
(match_operand:VI8F_256 1 "nonimmediate_operand")
(match_operand:SI 2 "const_0_to_255_operand")
- (match_operand:VI8F_256 3 "vector_move_operand")
+ (match_operand:VI8F_256 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")]
"TARGET_AVX512VL"
{
[(match_operand:V8FI 0 "register_operand")
(match_operand:V8FI 1 "nonimmediate_operand")
(match_operand:SI 2 "const_0_to_255_operand")
- (match_operand:V8FI 3 "vector_move_operand")
+ (match_operand:V8FI 3 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 4 "register_operand")]
"TARGET_AVX512F"
{
[(set (match_operand:V_256_512 0 "register_operand" "=x,v,x,Yv")
(vec_concat:V_256_512
(match_operand:<ssehalfvecmode> 1 "register_operand" "x,v,x,v")
- (match_operand:<ssehalfvecmode> 2 "vector_move_operand" "xm,vm,C,C")))]
+ (match_operand:<ssehalfvecmode> 2 "nonimm_or_0_operand" "xm,vm,C,C")))]
"TARGET_AVX"
{
switch (which_alternative)
(match_operand:SI 2 "const_0_to_255_operand")]
UNSPEC_VCVTPS2PH)
(match_dup 5))
- (match_operand:V8HI 3 "vector_move_operand")
+ (match_operand:V8HI 3 "nonimm_or_0_operand")
(match_operand:QI 4 "register_operand")))]
"TARGET_AVX512VL"
"operands[5] = CONST0_RTX (V4HImode);")
[(set (match_operand:VI48F 0 "register_operand" "=v")
(unspec:VI48F
[(match_operand:VI48F 1 "register_operand" "v")
- (match_operand:VI48F 2 "vector_move_operand" "0C")
+ (match_operand:VI48F 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")]
UNSPEC_COMPRESS))]
"TARGET_AVX512F"
[(set (match_operand:VI12_AVX512VLBW 0 "register_operand" "=v")
(unspec:VI12_AVX512VLBW
[(match_operand:VI12_AVX512VLBW 1 "register_operand" "v")
- (match_operand:VI12_AVX512VLBW 2 "vector_move_operand" "0C")
+ (match_operand:VI12_AVX512VLBW 2 "nonimm_or_0_operand" "0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk")]
UNSPEC_COMPRESS))]
"TARGET_AVX512VBMI2"
[(set (match_operand:VI48F 0 "register_operand")
(unspec:VI48F
[(match_operand:VI48F 1 "nonimmediate_operand")
- (match_operand:VI48F 2 "vector_move_operand")
+ (match_operand:VI48F 2 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 3 "register_operand")]
UNSPEC_EXPAND))]
"TARGET_AVX512F"
[(set (match_operand:VI48F 0 "register_operand" "=v,v")
(unspec:VI48F
[(match_operand:VI48F 1 "nonimmediate_operand" "v,m")
- (match_operand:VI48F 2 "vector_move_operand" "0C,0C")
+ (match_operand:VI48F 2 "nonimm_or_0_operand" "0C,0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")]
UNSPEC_EXPAND))]
"TARGET_AVX512F"
[(set (match_operand:VI12_AVX512VLBW 0 "register_operand" "=v,v")
(unspec:VI12_AVX512VLBW
[(match_operand:VI12_AVX512VLBW 1 "nonimmediate_operand" "v,m")
- (match_operand:VI12_AVX512VLBW 2 "vector_move_operand" "0C,0C")
+ (match_operand:VI12_AVX512VLBW 2 "nonimm_or_0_operand" "0C,0C")
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")]
UNSPEC_EXPAND))]
"TARGET_AVX512VBMI2"
[(set (match_operand:VI12_AVX512VLBW 0 "register_operand")
(unspec:VI12_AVX512VLBW
[(match_operand:VI12_AVX512VLBW 1 "nonimmediate_operand")
- (match_operand:VI12_AVX512VLBW 2 "vector_move_operand")
+ (match_operand:VI12_AVX512VLBW 2 "nonimm_or_0_operand")
(match_operand:<avx512fmaskmode> 3 "register_operand")]
UNSPEC_EXPAND))]
"TARGET_AVX512VBMI2"
(define_expand "mov<mode>"
[(set (match_operand:IMOD4 0 "nonimmediate_operand")
- (match_operand:IMOD4 1 "vector_move_operand"))]
+ (match_operand:IMOD4 1 "nonimm_or_0_operand"))]
"TARGET_AVX512F"
{
ix86_expand_vector_move (<MODE>mode, operands);
(define_insn_and_split "*mov<mode>_internal"
[(set (match_operand:IMOD4 0 "nonimmediate_operand" "=v,v ,m")
- (match_operand:IMOD4 1 "vector_move_operand" " C,vm,v"))]
+ (match_operand:IMOD4 1 "nonimm_or_0_operand" " C,vm,v"))]
"TARGET_AVX512F
&& (register_operand (operands[0], <MODE>mode)
|| register_operand (operands[1], <MODE>mode))"