aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-03-22 13:58:09 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-03-22 13:58:09 +0100
commitbfdc651abd28f3c76a4ef150dd87d5edc19902d7 (patch)
treef0f205e265cfe2cf972f1aac14dfef3d6c86248a /gcc
parentecf392360a548c5c510b491f284c439b05964b3a (diff)
downloadgcc-bfdc651abd28f3c76a4ef150dd87d5edc19902d7.zip
gcc-bfdc651abd28f3c76a4ef150dd87d5edc19902d7.tar.gz
gcc-bfdc651abd28f3c76a4ef150dd87d5edc19902d7.tar.bz2
* 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. From-SVN: r269870
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config/i386/sse.md18
2 files changed, 24 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4e4fde8..9fa4bb9 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 e74521a..6b8298d 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)