From: Jakub Jelinek Date: Fri, 22 Mar 2019 10:12:18 +0000 (+0100) Subject: sse.md (_fmadd__mask, [...]): Use _fmadd__mask, [...]): Use instead of nonimmediate_operand. * config/i386/sse.md (_fmadd__mask, _fmadd__mask3, _fmsub__mask, _fmsub__mask3, _fnmadd__mask, _fnmadd__mask3, _fnmsub__mask, _fnmsub__mask3, _fmaddsub__mask, _fmaddsub__mask3, _fmsubadd__mask, _fmsubadd__mask3): Use instead of nonimmediate_operand. (fmai_vmfmadd_, fmai_vmfmsub_, fmai_vmfnmadd_, fmai_vmfnmsub_): Use register_operand instead of for the operand that needs to match output. (*fmai_fmadd_, *fmai_fmsub_, *fmai_fnmadd_, *fmai_fnmsub_): Likewise. Formatting fixes. From-SVN: r269869 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6601be53197..4e4fde867c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,26 @@ 2019-03-22 Jakub Jelinek + * config/i386/sse.md (_fmadd__mask, + _fmadd__mask3, + _fmsub__mask, + _fmsub__mask3, + _fnmadd__mask, + _fnmadd__mask3, + _fnmsub__mask, + _fnmsub__mask3, + _fmaddsub__mask, + _fmaddsub__mask3, + _fmsubadd__mask, + _fmsubadd__mask3): Use + instead of nonimmediate_operand. + (fmai_vmfmadd_, fmai_vmfmsub_, + fmai_vmfnmadd_, fmai_vmfnmsub_): + Use register_operand instead of for the + operand that needs to match output. + (*fmai_fmadd_, *fmai_fmsub_, + *fmai_fnmadd_, *fmai_fnmsub_): + Likewise. Formatting fixes. + PR target/89784 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index dc588ec1ccb..e74521a2729 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -3958,8 +3958,8 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")) + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -3974,7 +3974,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) (match_operand: 4 "register_operand" "Yk")))] @@ -4078,9 +4078,9 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))) + (match_operand:VF_AVX512VL 3 "" "v,"))) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F" @@ -4095,7 +4095,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) (match_dup 3) @@ -4201,8 +4201,8 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")) + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -4218,7 +4218,7 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) (match_operand: 4 "register_operand" "Yk")))] @@ -4328,9 +4328,9 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))) + (match_operand:VF_AVX512VL 3 "" "v,"))) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -4346,7 +4346,7 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) (match_dup 3) @@ -4428,8 +4428,8 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")] + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")] UNSPEC_FMADDSUB) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] @@ -4445,7 +4445,7 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")] UNSPEC_FMADDSUB) (match_dup 3) @@ -4495,9 +4495,9 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))] + (match_operand:VF_AVX512VL 3 "" "v,"))] UNSPEC_FMADDSUB) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] @@ -4513,7 +4513,7 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))] UNSPEC_FMADDSUB) @@ -4531,7 +4531,7 @@ [(set (match_operand:VF_128 0 "register_operand") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 2 "") (match_operand:VF_128 3 "")) (match_dup 1) @@ -4542,7 +4542,7 @@ [(set (match_operand:VF_128 0 "register_operand") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 2 "") (neg:VF_128 (match_operand:VF_128 3 ""))) @@ -4556,7 +4556,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "")) - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 3 "")) (match_dup 1) (const_int 1)))] @@ -4568,7 +4568,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "")) - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (neg:VF_128 (match_operand:VF_128 3 ""))) (match_dup 1) @@ -4579,9 +4579,9 @@ [(set (match_operand:VF_128 0 "register_operand" "=v,v") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "" " 0, 0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 2 "" ", v") - (match_operand:VF_128 3 "" " v,")) + (match_operand:VF_128 3 "" "v,")) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F" @@ -4595,10 +4595,10 @@ [(set (match_operand:VF_128 0 "register_operand" "=v,v") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "" "0,0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 2 "" ",v") (neg:VF_128 - (match_operand:VF_128 3 "" " v,"))) + (match_operand:VF_128 3 "" "v,"))) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F" @@ -4614,7 +4614,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "" ",v")) - (match_operand:VF_128 1 "" "0,0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 3 "" "v,")) (match_dup 1) (const_int 1)))] @@ -4630,10 +4630,10 @@ (vec_merge:VF_128 (fma:VF_128 (neg:VF_128 - (match_operand:VF_128 2 "" ", v")) - (match_operand:VF_128 1 "" " 0, 0") + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") (neg:VF_128 - (match_operand:VF_128 3 "" " v,"))) + (match_operand:VF_128 3 "" "v,"))) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F"