* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
authorJakub Jelinek <jakub@redhat.com>
Fri, 22 Mar 2019 12:58:09 +0000 (13:58 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 22 Mar 2019 12:58:09 +0000 (13:58 +0100)
<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

gcc/ChangeLog
gcc/config/i386/sse.md

index 4e4fde8..9fa4bb9 100644 (file)
@@ -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,
index e74521a..6b8298d 100644 (file)
   [(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)
   [(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")))
        (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)
        (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")))
        (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)
        (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")))
            (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"))
   [(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)