diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-03-22 12:58:09 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2019-03-22 12:58:09 +0000 |
commit | 080690a665d9171cf8056f5f846f045614bb745b (patch) | |
tree | f0f205e265cfe2cf972f1aac14dfef3d6c86248a | |
parent | 24fde663bdf1452366f1bae3b8edc99acee0db23 (diff) |
* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
<avx512>_fmsub_<mode>_mask3<round_name>,
<avx512>_fnmadd_<mode>_mask3<round_name>,
<avx512>_fnmsub_<mode>_mask3<round_name>,
avx512f_vmfmadd_<mode>_mask3<round_name>,
avx512f_vmfmsub_<mode>_mask3<round_name>,
*avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
instead of register_operand and %v instead of v for match_operand 1.
(avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
(*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
<round_nimm_predicate> instead of register_operand and %v instead of v
for match_operand 1.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@269870 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 18 |
2 files changed, 24 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e4fde867c4..9fa4bb9dfb7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,18 @@ 2019-03-22 Jakub Jelinek <jakub@redhat.com> + * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>, + <avx512>_fmsub_<mode>_mask3<round_name>, + <avx512>_fnmadd_<mode>_mask3<round_name>, + <avx512>_fnmsub_<mode>_mask3<round_name>, + avx512f_vmfmadd_<mode>_mask3<round_name>, + avx512f_vmfmsub_<mode>_mask3<round_name>, + *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> + instead of register_operand and %v instead of v for match_operand 1. + (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... + (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use + <round_nimm_predicate> instead of register_operand and %v instead of v + for match_operand 1. + * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, <avx512>_fmadd_<mode>_mask3<round_name>, <avx512>_fmsub_<mode>_mask<round_name>, @@ -39,8 +52,8 @@ *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_vmfnmasub_<mode>_maskz_1<round_name>): New define_insns. + avx512f_vmfnmsub_<mode>_mask3<round_name>, + *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns. (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index e74521a2729..6b8298d957e 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -3973,7 +3973,7 @@ [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") (vec_merge:VF_AVX512VL (fma:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v") + (match_operand:VF_AVX512VL 1 "<round_nimm_predicate>" "%v") (match_operand:VF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) @@ -4094,7 +4094,7 @@ [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") (vec_merge:VF_AVX512VL (fma:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v") + (match_operand:VF_AVX512VL 1 "<round_nimm_predicate>" "%v") (match_operand:VF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) @@ -4217,7 +4217,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v")) + (match_operand:VF_AVX512VL 1 "<round_nimm_predicate>" "%v")) (match_operand:VF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) @@ -4345,7 +4345,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v")) + (match_operand:VF_AVX512VL 1 "<round_nimm_predicate>" "%v")) (match_operand:VF_AVX512VL 2 "<round_nimm_predicate>" "<round_constraint>") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) @@ -4667,7 +4667,7 @@ (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>") (match_operand:VF_128 3 "register_operand" "0")) (match_dup 3) @@ -4737,7 +4737,7 @@ (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>") (neg:VF_128 (match_operand:VF_128 3 "register_operand" "0"))) @@ -4797,7 +4797,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>")) - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (match_operand:VF_128 3 "register_operand" "0")) (match_dup 3) (match_operand:QI 4 "register_operand" "Yk")) @@ -4849,14 +4849,14 @@ [(set_attr "type" "ssemuladd") (set_attr "mode" "<MODE>")]) -(define_insn "avx512f_vmfnmsub_<mode>_mask3<round_name>" +(define_insn "*avx512f_vmfnmsub_<mode>_mask3<round_name>" [(set (match_operand:VF_128 0 "register_operand" "=v") (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>")) - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "<round_nimm_predicate>" "%v") (neg:VF_128 (match_operand:VF_128 3 "register_operand" "0"))) (match_dup 3) |