Commit 8bbf3dea by Hongtao Liu Committed by Hongtao Liu

Adjust predicates and constraints of scalar insns.

Changelog

gcc/
	* config/i386/sse.md
	(<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
	<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
	<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
	<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
	<sse>_vmmaskcmp<mode>3):
	Change predicates from vector_operand to nonimmediate_operand,
	constraints xBm to xm, since scalar operations don't need
	memory address alignment.
	(avx512f_vmcmp<mode>3<round_saeonly_name>,
	avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
	round_saeonly_nimm_predicate with
	round_saeonly_nimm_scalar_predicate.
	(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
	fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
	*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
	*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
	avx512f_vmfmadd_<mode>_mask3<round_name>,
	avx512f_vmfmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfmsub_<mode>_mask<round_name>,
	avx512f_vmfmsub_<mode>_mask3<round_name>,
	*avx512f_vmfmsub_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmadd_<mode>_mask<round_name>,
	*avx512f_vmfnmadd_<mode>_mask3<round_name>,
	*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmsub_<mode>_mask<round_name>,
	*avx512f_vmfnmsub_<mode>_mask3<round_name>,
	*avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
	cvtusi2<ssescalarmodesuffix>32<round_name>,
	cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
	round_nimm_predicate with round_nimm_scalr_predicate.
	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
	avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
	avx512er_vmrcp28<mode><round_saeonly_name>,
	avx512er_vmrsqrt28<mode><round_saeonly_name>,
	): Replace round_saeonly_nimm_predicate with
	round_saeonly_nimm_scalar_predicate.
	(avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
	vector_operand with nonimmediate_operand.
	* config/i386/subst.md (round_scalar_nimm_predicate,
	round_saeonly_scalar_nimm_predicate): Replace
	vector_operand with nonimmediate_operand.

From-SVN: r277470
parent 011464ed
2019-10-26 Hongtao Liu <hongtao.liu@intel.com> 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
* config/i386/sse.md
(<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
<sse>_vmmaskcmp<mode>3):
Change predicates from vector_operand to nonimmediate_operand,
constraints xBm to xm, since scalar operations don't need
memory address alignment.
(avx512f_vmcmp<mode>3<round_saeonly_name>,
avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
round_saeonly_nimm_predicate with
round_saeonly_nimm_scalar_predicate.
(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
avx512f_vmfmadd_<mode>_mask3<round_name>,
avx512f_vmfmadd_<mode>_maskz_1<round_name>,
*avx512f_vmfmsub_<mode>_mask<round_name>,
avx512f_vmfmsub_<mode>_mask3<round_name>,
*avx512f_vmfmsub_<mode>_maskz_1<round_name>,
*avx512f_vmfnmadd_<mode>_mask<round_name>,
*avx512f_vmfnmadd_<mode>_mask3<round_name>,
*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
*avx512f_vmfnmsub_<mode>_mask<round_name>,
*avx512f_vmfnmsub_<mode>_mask3<round_name>,
*avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
cvtusi2<ssescalarmodesuffix>32<round_name>,
cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
round_nimm_predicate with round_nimm_scalr_predicate.
(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
avx512er_vmrcp28<mode><round_saeonly_name>,
avx512er_vmrsqrt28<mode><round_saeonly_name>,
): Replace round_saeonly_nimm_predicate with
round_saeonly_nimm_scalar_predicate.
(avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
vector_operand with nonimmediate_operand.
* config/i386/subst.md (round_scalar_nimm_predicate,
round_saeonly_scalar_nimm_predicate): Replace
vector_operand with nonimmediate_operand.
2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
PR target/89071 PR target/89071
* config/i386/i386.md (*rcpsf2_sse): Add * config/i386/i386.md (*rcpsf2_sse): Add
avx_partial_xmm_update, prefer m constraint for TARGET_AVX. avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
...@@ -1863,7 +1863,7 @@ ...@@ -1863,7 +1863,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(plusminus:VF_128 (plusminus:VF_128
(match_operand:VF_128 1 "register_operand" "0,v") (match_operand:VF_128 1 "register_operand" "0,v")
(match_operand:VF_128 2 "vector_operand" "xBm,<round_scalar_constraint>")) (match_operand:VF_128 2 "nonimmediate_operand" "xm,<round_scalar_constraint>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_SSE" "TARGET_SSE"
...@@ -1940,7 +1940,7 @@ ...@@ -1940,7 +1940,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(multdiv:VF_128 (multdiv:VF_128
(match_operand:VF_128 1 "register_operand" "0,v") (match_operand:VF_128 1 "register_operand" "0,v")
(match_operand:VF_128 2 "vector_operand" "xBm,<round_scalar_constraint>")) (match_operand:VF_128 2 "nonimmediate_operand" "xm,<round_scalar_constraint>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_SSE" "TARGET_SSE"
...@@ -2135,7 +2135,7 @@ ...@@ -2135,7 +2135,7 @@
[(set (match_operand:VF_128 0 "register_operand" "=x,v") [(set (match_operand:VF_128 0 "register_operand" "=x,v")
(vec_merge:VF_128 (vec_merge:VF_128
(sqrt:VF_128 (sqrt:VF_128
(match_operand:VF_128 1 "vector_operand" "xBm,<round_scalar_constraint>")) (match_operand:VF_128 1 "nonimmediate_operand" "xm,<round_scalar_constraint>"))
(match_operand:VF_128 2 "register_operand" "0,v") (match_operand:VF_128 2 "register_operand" "0,v")
(const_int 1)))] (const_int 1)))]
"TARGET_SSE" "TARGET_SSE"
...@@ -2368,7 +2368,7 @@ ...@@ -2368,7 +2368,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(smaxmin:VF_128 (smaxmin:VF_128
(match_operand:VF_128 1 "register_operand" "0,v") (match_operand:VF_128 1 "register_operand" "0,v")
(match_operand:VF_128 2 "vector_operand" "xBm,<round_saeonly_scalar_constraint>")) (match_operand:VF_128 2 "nonimmediate_operand" "xm,<round_saeonly_scalar_constraint>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_SSE" "TARGET_SSE"
...@@ -3012,7 +3012,7 @@ ...@@ -3012,7 +3012,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(match_operator:VF_128 3 "sse_comparison_operator" (match_operator:VF_128 3 "sse_comparison_operator"
[(match_operand:VF_128 1 "register_operand" "0,x") [(match_operand:VF_128 1 "register_operand" "0,x")
(match_operand:VF_128 2 "vector_operand" "xBm,xm")]) (match_operand:VF_128 2 "nonimmediate_operand" "xm,xm")])
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_SSE" "TARGET_SSE"
...@@ -3097,7 +3097,7 @@ ...@@ -3097,7 +3097,7 @@
(and:<avx512fmaskmode> (and:<avx512fmaskmode>
(unspec:<avx512fmaskmode> (unspec:<avx512fmaskmode>
[(match_operand:VF_128 1 "register_operand" "v") [(match_operand:VF_128 1 "register_operand" "v")
(match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>") (match_operand:VF_128 2 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")
(match_operand:SI 3 "const_0_to_31_operand" "n")] (match_operand:SI 3 "const_0_to_31_operand" "n")]
UNSPEC_PCMP) UNSPEC_PCMP)
(const_int 1)))] (const_int 1)))]
...@@ -3113,7 +3113,7 @@ ...@@ -3113,7 +3113,7 @@
(and:<avx512fmaskmode> (and:<avx512fmaskmode>
(unspec:<avx512fmaskmode> (unspec:<avx512fmaskmode>
[(match_operand:VF_128 1 "register_operand" "v") [(match_operand:VF_128 1 "register_operand" "v")
(match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>") (match_operand:VF_128 2 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")
(match_operand:SI 3 "const_0_to_31_operand" "n")] (match_operand:SI 3 "const_0_to_31_operand" "n")]
UNSPEC_PCMP) UNSPEC_PCMP)
(and:<avx512fmaskmode> (and:<avx512fmaskmode>
...@@ -4742,8 +4742,8 @@ ...@@ -4742,8 +4742,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand") (match_operand:VF_128 1 "register_operand")
(match_operand:VF_128 2 "<round_nimm_predicate>") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>")
(match_operand:VF_128 3 "<round_nimm_predicate>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA") "TARGET_FMA")
...@@ -4753,9 +4753,9 @@ ...@@ -4753,9 +4753,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand") (match_operand:VF_128 1 "register_operand")
(match_operand:VF_128 2 "<round_nimm_predicate>") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>")))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA") "TARGET_FMA")
...@@ -4765,9 +4765,9 @@ ...@@ -4765,9 +4765,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>"))
(match_operand:VF_128 1 "register_operand") (match_operand:VF_128 1 "register_operand")
(match_operand:VF_128 3 "<round_nimm_predicate>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA") "TARGET_FMA")
...@@ -4777,10 +4777,10 @@ ...@@ -4777,10 +4777,10 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>"))
(match_operand:VF_128 1 "register_operand") (match_operand:VF_128 1 "register_operand")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>")))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA") "TARGET_FMA")
...@@ -4790,8 +4790,8 @@ ...@@ -4790,8 +4790,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>, v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>, v")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA || TARGET_AVX512F" "TARGET_FMA || TARGET_AVX512F"
...@@ -4806,9 +4806,9 @@ ...@@ -4806,9 +4806,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA || TARGET_AVX512F" "TARGET_FMA || TARGET_AVX512F"
...@@ -4823,9 +4823,9 @@ ...@@ -4823,9 +4823,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA || TARGET_AVX512F" "TARGET_FMA || TARGET_AVX512F"
...@@ -4840,10 +4840,10 @@ ...@@ -4840,10 +4840,10 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_dup 1) (match_dup 1)
(const_int 1)))] (const_int 1)))]
"TARGET_FMA || TARGET_AVX512F" "TARGET_FMA || TARGET_AVX512F"
...@@ -4859,8 +4859,8 @@ ...@@ -4859,8 +4859,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_dup 1) (match_dup 1)
(match_operand:QI 4 "register_operand" "Yk,Yk")) (match_operand:QI 4 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -4877,8 +4877,8 @@ ...@@ -4877,8 +4877,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 1 "<round_nimm_scalar_predicate>" "%v")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>")
(match_operand:VF_128 3 "register_operand" "0")) (match_operand:VF_128 3 "register_operand" "0"))
(match_dup 3) (match_dup 3)
(match_operand:QI 4 "register_operand" "Yk")) (match_operand:QI 4 "register_operand" "Yk"))
...@@ -4909,8 +4909,8 @@ ...@@ -4909,8 +4909,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_operand:VF_128 4 "const0_operand" "C,C") (match_operand:VF_128 4 "const0_operand" "C,C")
(match_operand:QI 5 "register_operand" "Yk,Yk")) (match_operand:QI 5 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -4928,9 +4928,9 @@ ...@@ -4928,9 +4928,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_dup 1) (match_dup 1)
(match_operand:QI 4 "register_operand" "Yk,Yk")) (match_operand:QI 4 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -4947,8 +4947,8 @@ ...@@ -4947,8 +4947,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 1 "<round_nimm_scalar_predicate>" "%v")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "register_operand" "0"))) (match_operand:VF_128 3 "register_operand" "0")))
(match_dup 3) (match_dup 3)
...@@ -4966,9 +4966,9 @@ ...@@ -4966,9 +4966,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v") (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_operand:VF_128 4 "const0_operand" "C,C") (match_operand:VF_128 4 "const0_operand" "C,C")
(match_operand:QI 5 "register_operand" "Yk,Yk")) (match_operand:QI 5 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -4986,9 +4986,9 @@ ...@@ -4986,9 +4986,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_dup 1) (match_dup 1)
(match_operand:QI 4 "register_operand" "Yk,Yk")) (match_operand:QI 4 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -5006,8 +5006,8 @@ ...@@ -5006,8 +5006,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>"))
(match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 1 "<round_nimm_scalar_predicate>" "%v")
(match_operand:VF_128 3 "register_operand" "0")) (match_operand:VF_128 3 "register_operand" "0"))
(match_dup 3) (match_dup 3)
(match_operand:QI 4 "register_operand" "Yk")) (match_operand:QI 4 "register_operand" "Yk"))
...@@ -5024,9 +5024,9 @@ ...@@ -5024,9 +5024,9 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>")) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>"))
(match_operand:VF_128 4 "const0_operand" "C,C") (match_operand:VF_128 4 "const0_operand" "C,C")
(match_operand:QI 5 "register_operand" "Yk,Yk")) (match_operand:QI 5 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -5044,10 +5044,10 @@ ...@@ -5044,10 +5044,10 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_dup 1) (match_dup 1)
(match_operand:QI 4 "register_operand" "Yk,Yk")) (match_operand:QI 4 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -5065,8 +5065,8 @@ ...@@ -5065,8 +5065,8 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>"))
(match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 1 "<round_nimm_scalar_predicate>" "%v")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "register_operand" "0"))) (match_operand:VF_128 3 "register_operand" "0")))
(match_dup 3) (match_dup 3)
...@@ -5084,10 +5084,10 @@ ...@@ -5084,10 +5084,10 @@
(vec_merge:VF_128 (vec_merge:VF_128
(fma:VF_128 (fma:VF_128
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>,v")) (match_operand:VF_128 2 "<round_nimm_scalar_predicate>" "<round_constraint>,v"))
(match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 1 "register_operand" "0,0")
(neg:VF_128 (neg:VF_128
(match_operand:VF_128 3 "<round_nimm_predicate>" "v,<round_constraint>"))) (match_operand:VF_128 3 "<round_nimm_scalar_predicate>" "v,<round_constraint>")))
(match_operand:VF_128 4 "const0_operand" "C,C") (match_operand:VF_128 4 "const0_operand" "C,C")
(match_operand:QI 5 "register_operand" "Yk,Yk")) (match_operand:QI 5 "register_operand" "Yk,Yk"))
(match_dup 1) (match_dup 1)
...@@ -5355,7 +5355,7 @@ ...@@ -5355,7 +5355,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(vec_duplicate:VF_128 (vec_duplicate:VF_128
(unsigned_float:<ssescalarmode> (unsigned_float:<ssescalarmode>
(match_operand:SI 2 "<round_nimm_predicate>" "<round_constraint3>"))) (match_operand:SI 2 "<round_nimm_scalar_predicate>" "<round_constraint3>")))
(match_operand:VF_128 1 "register_operand" "v") (match_operand:VF_128 1 "register_operand" "v")
(const_int 1)))] (const_int 1)))]
"TARGET_AVX512F && <round_modev4sf_condition>" "TARGET_AVX512F && <round_modev4sf_condition>"
...@@ -5369,7 +5369,7 @@ ...@@ -5369,7 +5369,7 @@
(vec_merge:VF_128 (vec_merge:VF_128
(vec_duplicate:VF_128 (vec_duplicate:VF_128
(unsigned_float:<ssescalarmode> (unsigned_float:<ssescalarmode>
(match_operand:DI 2 "<round_nimm_predicate>" "<round_constraint3>"))) (match_operand:DI 2 "<round_nimm_scalar_predicate>" "<round_constraint3>")))
(match_operand:VF_128 1 "register_operand" "v") (match_operand:VF_128 1 "register_operand" "v")
(const_int 1)))] (const_int 1)))]
"TARGET_AVX512F && TARGET_64BIT" "TARGET_AVX512F && TARGET_64BIT"
...@@ -9708,7 +9708,7 @@ ...@@ -9708,7 +9708,7 @@
(unspec:VF_128 (unspec:VF_128
[(match_operand:VF_128 1 "register_operand" "0") [(match_operand:VF_128 1 "register_operand" "0")
(match_operand:VF_128 2 "register_operand" "v") (match_operand:VF_128 2 "register_operand" "v")
(match_operand:<sseintvecmode> 3 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>") (match_operand:<sseintvecmode> 3 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")
(match_operand:SI 4 "const_0_to_255_operand")] (match_operand:SI 4 "const_0_to_255_operand")]
UNSPEC_FIXUPIMM) UNSPEC_FIXUPIMM)
(match_dup 1) (match_dup 1)
...@@ -9725,7 +9725,7 @@ ...@@ -9725,7 +9725,7 @@
(unspec:VF_128 (unspec:VF_128
[(match_operand:VF_128 1 "register_operand" "0") [(match_operand:VF_128 1 "register_operand" "0")
(match_operand:VF_128 2 "register_operand" "v") (match_operand:VF_128 2 "register_operand" "v")
(match_operand:<sseintvecmode> 3 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>") (match_operand:<sseintvecmode> 3 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")
(match_operand:SI 4 "const_0_to_255_operand")] (match_operand:SI 4 "const_0_to_255_operand")]
UNSPEC_FIXUPIMM) UNSPEC_FIXUPIMM)
(match_dup 1) (match_dup 1)
...@@ -18642,7 +18642,7 @@ ...@@ -18642,7 +18642,7 @@
[(set (match_operand:VF_128 0 "register_operand" "=v") [(set (match_operand:VF_128 0 "register_operand" "=v")
(vec_merge:VF_128 (vec_merge:VF_128
(unspec:VF_128 (unspec:VF_128
[(match_operand:VF_128 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")] [(match_operand:VF_128 1 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")]
UNSPEC_RCP28) UNSPEC_RCP28)
(match_operand:VF_128 2 "register_operand" "v") (match_operand:VF_128 2 "register_operand" "v")
(const_int 1)))] (const_int 1)))]
...@@ -18668,7 +18668,7 @@ ...@@ -18668,7 +18668,7 @@
[(set (match_operand:VF_128 0 "register_operand" "=v") [(set (match_operand:VF_128 0 "register_operand" "=v")
(vec_merge:VF_128 (vec_merge:VF_128
(unspec:VF_128 (unspec:VF_128
[(match_operand:VF_128 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")] [(match_operand:VF_128 1 "<round_saeonly_nimm_scalar_predicate>" "<round_saeonly_constraint>")]
UNSPEC_RSQRT28) UNSPEC_RSQRT28)
(match_operand:VF_128 2 "register_operand" "v") (match_operand:VF_128 2 "register_operand" "v")
(const_int 1)))] (const_int 1)))]
...@@ -21888,7 +21888,7 @@ ...@@ -21888,7 +21888,7 @@
[(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k") [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k")
(and:<avx512fmaskmode> (and:<avx512fmaskmode>
(unspec:<avx512fmaskmode> (unspec:<avx512fmaskmode>
[(match_operand:VF_128 1 "vector_operand" "vm") [(match_operand:VF_128 1 "nonimmediate_operand" "vm")
(match_operand:QI 2 "const_0_to_255_operand" "n")] (match_operand:QI 2 "const_0_to_255_operand" "n")]
UNSPEC_FPCLASS) UNSPEC_FPCLASS)
(const_int 1)))] (const_int 1)))]
......
...@@ -271,7 +271,7 @@ ...@@ -271,7 +271,7 @@
(define_subst_attr "round_scalar_mask_op3" "round_scalar" "" "<round_scalar_mask_operand3>") (define_subst_attr "round_scalar_mask_op3" "round_scalar" "" "<round_scalar_mask_operand3>")
(define_subst_attr "round_scalar_constraint" "round_scalar" "vm" "v") (define_subst_attr "round_scalar_constraint" "round_scalar" "vm" "v")
(define_subst_attr "round_scalar_prefix" "round_scalar" "vex" "evex") (define_subst_attr "round_scalar_prefix" "round_scalar" "vex" "evex")
(define_subst_attr "round_scalar_nimm_predicate" "round_scalar" "vector_operand" "register_operand") (define_subst_attr "round_scalar_nimm_predicate" "round_scalar" "nonimmediate_operand" "register_operand")
(define_subst "round_scalar" (define_subst "round_scalar"
[(set (match_operand:SUBST_V 0) [(set (match_operand:SUBST_V 0)
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
(define_subst_attr "round_saeonly_scalar_mask_op4" "round_saeonly_scalar" "" "<round_saeonly_scalar_mask_operand4>") (define_subst_attr "round_saeonly_scalar_mask_op4" "round_saeonly_scalar" "" "<round_saeonly_scalar_mask_operand4>")
(define_subst_attr "round_saeonly_scalar_constraint" "round_saeonly_scalar" "vm" "v") (define_subst_attr "round_saeonly_scalar_constraint" "round_saeonly_scalar" "vm" "v")
(define_subst_attr "round_saeonly_scalar_prefix" "round_saeonly_scalar" "vex" "evex") (define_subst_attr "round_saeonly_scalar_prefix" "round_saeonly_scalar" "vex" "evex")
(define_subst_attr "round_saeonly_scalar_nimm_predicate" "round_saeonly_scalar" "vector_operand" "register_operand") (define_subst_attr "round_saeonly_scalar_nimm_predicate" "round_saeonly_scalar" "nonimmediate_operand" "register_operand")
(define_subst "round_saeonly_scalar" (define_subst "round_saeonly_scalar"
[(set (match_operand:SUBST_V 0) [(set (match_operand:SUBST_V 0)
......
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