diff options
author | Christophe Lyon <christophe.lyon@arm.com> | 2023-02-15 14:38:49 +0000 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@arm.com> | 2023-05-03 16:58:28 +0200 |
commit | 5cbe0c090d44761103ae90f161c18539b1cd7be4 (patch) | |
tree | 97ce78721e21ed09f93edc89bf3019e371062d7e /gcc | |
parent | 07685b397d88700cc59beaeba80f8052d6b3bb99 (diff) | |
download | gcc-5cbe0c090d44761103ae90f161c18539b1cd7be4.zip gcc-5cbe0c090d44761103ae90f161c18539b1cd7be4.tar.gz gcc-5cbe0c090d44761103ae90f161c18539b1cd7be4.tar.bz2 |
arm: [MVE intrinsics] factorize several binary_m operations
Factorize m-predicated versions of vabdq, vhaddq, vhsubq, vmaxq,
vminq, vmulhq, vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq,
vqdmulhq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq
so that they use the same pattern.
2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
gcc/
* config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
(mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
(supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
* config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
(mve_vshlq_m_<supf><mode>): Merged into
@mve_<mve_insn>q_m_<supf><mode>.
(mve_vabdq_m_<supf><mode>): Likewise.
(mve_vhaddq_m_<supf><mode>): Likewise.
(mve_vhsubq_m_<supf><mode>): Likewise.
(mve_vmaxq_m_<supf><mode>): Likewise.
(mve_vminq_m_<supf><mode>): Likewise.
(mve_vmulhq_m_<supf><mode>): Likewise.
(mve_vqaddq_m_<supf><mode>): Likewise.
(mve_vqrshlq_m_<supf><mode>): Likewise.
(mve_vqshlq_m_<supf><mode>): Likewise.
(mve_vqsubq_m_<supf><mode>): Likewise.
(mve_vrhaddq_m_<supf><mode>): Likewise.
(mve_vrmulhq_m_<supf><mode>): Likewise.
(mve_vrshlq_m_<supf><mode>): Likewise.
(mve_vqdmladhq_m_s<mode>): Likewise.
(mve_vqdmladhxq_m_s<mode>): Likewise.
(mve_vqdmlsdhq_m_s<mode>): Likewise.
(mve_vqdmlsdhxq_m_s<mode>): Likewise.
(mve_vqdmulhq_m_s<mode>): Likewise.
(mve_vqrdmladhq_m_s<mode>): Likewise.
(mve_vqrdmladhxq_m_s<mode>): Likewise.
(mve_vqrdmlsdhq_m_s<mode>): Likewise.
(mve_vqrdmlsdhxq_m_s<mode>): Likewise.
(mve_vqrdmulhq_m_s<mode>): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/arm/iterators.md | 65 | ||||
-rw-r--r-- | gcc/config/arm/mve.md | 422 |
2 files changed, 92 insertions, 395 deletions
diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md index aa2ee98..175066f 100644 --- a/gcc/config/arm/iterators.md +++ b/gcc/config/arm/iterators.md @@ -339,6 +339,33 @@ VSUBQ_M_S VSUBQ_M_U ]) +(define_int_iterator MVE_INT_SU_M_BINARY [ + VABDQ_M_S VABDQ_M_U + VHADDQ_M_S VHADDQ_M_U + VHSUBQ_M_S VHSUBQ_M_U + VMAXQ_M_S VMAXQ_M_U + VMINQ_M_S VMINQ_M_U + VMULHQ_M_S VMULHQ_M_U + VQADDQ_M_S VQADDQ_M_U + VQDMLADHQ_M_S + VQDMLADHXQ_M_S + VQDMLSDHQ_M_S + VQDMLSDHXQ_M_S + VQDMULHQ_M_S + VQRDMLADHQ_M_S + VQRDMLADHXQ_M_S + VQRDMLSDHQ_M_S + VQRDMLSDHXQ_M_S + VQRDMULHQ_M_S + VQRSHLQ_M_S VQRSHLQ_M_U + VQSHLQ_M_S VQSHLQ_M_U + VQSUBQ_M_S VQSUBQ_M_U + VRHADDQ_M_S VRHADDQ_M_U + VRMULHQ_M_S VRMULHQ_M_U + VRSHLQ_M_S VRSHLQ_M_U + VSHLQ_M_S VSHLQ_M_U + ]) + (define_int_iterator MVE_INT_M_BINARY_LOGIC [ VANDQ_M_S VANDQ_M_U VBICQ_M_S VBICQ_M_U @@ -404,6 +431,7 @@ ]) (define_int_attr mve_insn [ + (VABDQ_M_S "vabd") (VABDQ_M_U "vabd") (VADDQ_M_N_S "vadd") (VADDQ_M_N_U "vadd") (VADDQ_M_N_F "vadd") (VADDQ_M_S "vadd") (VADDQ_M_U "vadd") (VADDQ_M_F "vadd") (VADDQ_N_S "vadd") (VADDQ_N_U "vadd") (VADDQ_N_F "vadd") @@ -413,12 +441,35 @@ (VBICQ_N_S "vbic") (VBICQ_N_U "vbic") (VCREATEQ_S "vcreate") (VCREATEQ_U "vcreate") (VCREATEQ_F "vcreate") (VEORQ_M_S "veor") (VEORQ_M_U "veor") (VEORQ_M_F "veor") + (VHADDQ_M_S "vhadd") (VHADDQ_M_U "vhadd") + (VHSUBQ_M_S "vhsub") (VHSUBQ_M_U "vhsub") + (VMAXQ_M_S "vmax") (VMAXQ_M_U "vmax") + (VMINQ_M_S "vmin") (VMINQ_M_U "vmin") + (VMULHQ_M_S "vmulh") (VMULHQ_M_U "vmulh") (VMULQ_M_N_S "vmul") (VMULQ_M_N_U "vmul") (VMULQ_M_N_F "vmul") (VMULQ_M_S "vmul") (VMULQ_M_U "vmul") (VMULQ_M_F "vmul") (VMULQ_N_S "vmul") (VMULQ_N_U "vmul") (VMULQ_N_F "vmul") (VORRQ_M_N_S "vorr") (VORRQ_M_N_U "vorr") (VORRQ_M_S "vorr") (VORRQ_M_U "vorr") (VORRQ_M_F "vorr") (VORRQ_N_S "vorr") (VORRQ_N_U "vorr") + (VQADDQ_M_S "vqadd") (VQADDQ_M_U "vqadd") + (VQDMLADHQ_M_S "vqdmladh") + (VQDMLADHXQ_M_S "vqdmladhx") + (VQDMLSDHQ_M_S "vqdmlsdh") + (VQDMLSDHXQ_M_S "vqdmlsdhx") + (VQDMULHQ_M_S "vqdmulh") + (VQRDMLADHQ_M_S "vqrdmladh") + (VQRDMLADHXQ_M_S "vqrdmladhx") + (VQRDMLSDHQ_M_S "vqrdmlsdh") + (VQRDMLSDHXQ_M_S "vqrdmlsdhx") + (VQRDMULHQ_M_S "vqrdmulh") + (VQRSHLQ_M_S "vqrshl") (VQRSHLQ_M_U "vqrshl") + (VQSHLQ_M_S "vqshl") (VQSHLQ_M_U "vqshl") + (VQSUBQ_M_S "vqsub") (VQSUBQ_M_U "vqsub") + (VRHADDQ_M_S "vrhadd") (VRHADDQ_M_U "vrhadd") + (VRMULHQ_M_S "vrmulh") (VRMULHQ_M_U "vrmulh") + (VRSHLQ_M_S "vrshl") (VRSHLQ_M_U "vrshl") + (VSHLQ_M_S "vshl") (VSHLQ_M_U "vshl") (VSUBQ_M_N_S "vsub") (VSUBQ_M_N_U "vsub") (VSUBQ_M_N_F "vsub") (VSUBQ_M_S "vsub") (VSUBQ_M_U "vsub") (VSUBQ_M_F "vsub") (VSUBQ_N_S "vsub") (VSUBQ_N_U "vsub") (VSUBQ_N_F "vsub") @@ -1557,7 +1608,19 @@ (VADCIQ_U "u") (VADCIQ_M_U "u") (VADCIQ_S "s") (VADCIQ_M_S "s") (SQRSHRL_64 "64") (SQRSHRL_48 "48") (UQRSHLL_64 "64") (UQRSHLL_48 "48") (VSHLCQ_M_S "s") - (VSHLCQ_M_U "u")]) + (VSHLCQ_M_U "u") + (VQDMLADHQ_M_S "s") + (VQDMLADHXQ_M_S "s") + (VQDMLSDHQ_M_S "s") + (VQDMLSDHXQ_M_S "s") + (VQDMULHQ_M_S "s") + (VQRDMLADHQ_M_S "s") + (VQRDMLADHXQ_M_S "s") + (VQRDMLSDHQ_M_S "s") + (VQRDMLSDHXQ_M_S "s") + (VQRDMULHQ_M_S "s") + ]) + ;; Both kinds of return insn. (define_code_iterator RETURNS [return simple_return]) (define_code_attr return_str [(return "") (simple_return "simple_")]) diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md index 8592e4a..5ee80dd 100644 --- a/gcc/config/arm/mve.md +++ b/gcc/config/arm/mve.md @@ -4868,23 +4868,6 @@ (set_attr "length" "8")]) ;; -;; [vshlq_m_s, vshlq_m_u]) -;; -(define_insn "mve_vshlq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VSHLQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length" "8")]) - -;; ;; [vsriq_m_n_s, vsriq_m_n_u]) ;; (define_insn "mve_vsriq_m_n_<supf><mode>" @@ -4917,20 +4900,44 @@ "vpst\;vcvtt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q2, %3" [(set_attr "type" "mve_move") (set_attr "length""8")]) + ;; -;; [vabdq_m_s, vabdq_m_u]) +;; [vabdq_m_s, vabdq_m_u] +;; [vhaddq_m_s, vhaddq_m_u] +;; [vhsubq_m_s, vhsubq_m_u] +;; [vmaxq_m_s, vmaxq_m_u] +;; [vminq_m_s, vminq_m_u] +;; [vmulhq_m_s, vmulhq_m_u] +;; [vqaddq_m_u, vqaddq_m_s] +;; [vqdmladhq_m_s] +;; [vqdmladhxq_m_s] +;; [vqdmlsdhq_m_s] +;; [vqdmlsdhxq_m_s] +;; [vqdmulhq_m_s] +;; [vqrdmladhq_m_s] +;; [vqrdmladhxq_m_s] +;; [vqrdmlsdhq_m_s] +;; [vqrdmlsdhxq_m_s] +;; [vqrdmulhq_m_s] +;; [vqrshlq_m_u, vqrshlq_m_s] +;; [vqshlq_m_u, vqshlq_m_s] +;; [vqsubq_m_u, vqsubq_m_s] +;; [vrhaddq_m_u, vrhaddq_m_s] +;; [vrmulhq_m_u, vrmulhq_m_s] +;; [vrshlq_m_s, vrshlq_m_u] +;; [vshlq_m_s, vshlq_m_u] ;; -(define_insn "mve_vabdq_m_<supf><mode>" +(define_insn "@mve_<mve_insn>q_m_<supf><mode>" [ (set (match_operand:MVE_2 0 "s_register_operand" "=w") (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") (match_operand:MVE_2 2 "s_register_operand" "w") (match_operand:MVE_2 3 "s_register_operand" "w") (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VABDQ_M)) + MVE_INT_SU_M_BINARY)) ] "TARGET_HAVE_MVE" - "vpst\;vabdt.<supf>%#<V_sz_elem> %q0, %q2, %q3" + "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" [(set_attr "type" "mve_move") (set_attr "length""8")]) @@ -5061,23 +5068,6 @@ (set_attr "length""8")]) ;; -;; [vhaddq_m_s, vhaddq_m_u]) -;; -(define_insn "mve_vhaddq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VHADDQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vhaddt.<supf>%#<V_sz_elem> %q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vhsubq_m_n_s, vhsubq_m_n_u]) ;; (define_insn "mve_vhsubq_m_n_<supf><mode>" @@ -5095,56 +5085,6 @@ (set_attr "length""8")]) ;; -;; [vhsubq_m_s, vhsubq_m_u]) -;; -(define_insn "mve_vhsubq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VHSUBQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vhsubt.<supf>%#<V_sz_elem> %q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vmaxq_m_s, vmaxq_m_u]) -;; -(define_insn "mve_vmaxq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VMAXQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vmaxt.<supf>%#<V_sz_elem> %q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vminq_m_s, vminq_m_u]) -;; -(define_insn "mve_vminq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VMINQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vmint.<supf>%#<V_sz_elem> %q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - ;; ;; [vmladavaq_p_u, vmladavaq_p_s]) ;; @@ -5197,23 +5137,6 @@ (set_attr "length""8")]) ;; -;; [vmulhq_m_s, vmulhq_m_u]) -;; -(define_insn "mve_vmulhq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VMULHQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vmulht.<supf>%#<V_sz_elem> %q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vmullbq_int_m_u, vmullbq_int_m_s]) ;; (define_insn "mve_vmullbq_int_m_<supf><mode>" @@ -5282,23 +5205,6 @@ (set_attr "length""8")]) ;; -;; [vqaddq_m_u, vqaddq_m_s]) -;; -(define_insn "mve_vqaddq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQADDQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqaddt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vqdmlahq_m_n_s]) ;; (define_insn "mve_vqdmlahq_m_n_s<mode>" @@ -5367,23 +5273,6 @@ (set_attr "length""8")]) ;; -;; [vqrshlq_m_u, vqrshlq_m_s]) -;; -(define_insn "mve_vqrshlq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRSHLQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vqshlq_m_n_s, vqshlq_m_n_u]) ;; (define_insn "mve_vqshlq_m_n_<supf><mode>" @@ -5401,23 +5290,6 @@ (set_attr "length""8")]) ;; -;; [vqshlq_m_u, vqshlq_m_s]) -;; -(define_insn "mve_vqshlq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQSHLQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vqsubq_m_n_u, vqsubq_m_n_s]) ;; (define_insn "mve_vqsubq_m_n_<supf><mode>" @@ -5435,74 +5307,6 @@ (set_attr "length""8")]) ;; -;; [vqsubq_m_u, vqsubq_m_s]) -;; -(define_insn "mve_vqsubq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQSUBQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqsubt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vrhaddq_m_u, vrhaddq_m_s]) -;; -(define_insn "mve_vrhaddq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VRHADDQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vrhaddt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vrmulhq_m_u, vrmulhq_m_s]) -;; -(define_insn "mve_vrmulhq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VRMULHQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vrmulht.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vrshlq_m_s, vrshlq_m_u]) -;; -(define_insn "mve_vrshlq_m_<supf><mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VRSHLQ_M)) - ] - "TARGET_HAVE_MVE" - "vpst\;vrshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vrshrq_m_n_s, vrshrq_m_n_u]) ;; (define_insn "mve_vrshrq_m_n_<supf><mode>" @@ -5656,74 +5460,6 @@ (set_attr "length""8")]) ;; -;; [vqdmladhq_m_s]) -;; -(define_insn "mve_vqdmladhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQDMLADHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqdmladht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqdmladhxq_m_s]) -;; -(define_insn "mve_vqdmladhxq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQDMLADHXQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqdmladhxt.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqdmlsdhq_m_s]) -;; -(define_insn "mve_vqdmlsdhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQDMLSDHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqdmlsdht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqdmlsdhxq_m_s]) -;; -(define_insn "mve_vqdmlsdhxq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQDMLSDHXQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqdmlsdhxt.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vqdmulhq_m_n_s]) ;; (define_insn "mve_vqdmulhq_m_n_s<mode>" @@ -5741,91 +5477,6 @@ (set_attr "length""8")]) ;; -;; [vqdmulhq_m_s]) -;; -(define_insn "mve_vqdmulhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQDMULHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqdmulht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqrdmladhq_m_s]) -;; -(define_insn "mve_vqrdmladhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRDMLADHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrdmladht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqrdmladhxq_m_s]) -;; -(define_insn "mve_vqrdmladhxq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRDMLADHXQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrdmladhxt.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqrdmlsdhq_m_s]) -;; -(define_insn "mve_vqrdmlsdhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRDMLSDHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrdmlsdht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; -;; [vqrdmlsdhxq_m_s]) -;; -(define_insn "mve_vqrdmlsdhxq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRDMLSDHXQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrdmlsdhxt.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vqrdmulhq_m_n_s]) ;; (define_insn "mve_vqrdmulhq_m_n_s<mode>" @@ -5843,23 +5494,6 @@ (set_attr "length""8")]) ;; -;; [vqrdmulhq_m_s]) -;; -(define_insn "mve_vqrdmulhq_m_s<mode>" - [ - (set (match_operand:MVE_2 0 "s_register_operand" "=w") - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") - (match_operand:MVE_2 2 "s_register_operand" "w") - (match_operand:MVE_2 3 "s_register_operand" "w") - (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")] - VQRDMULHQ_M_S)) - ] - "TARGET_HAVE_MVE" - "vpst\;vqrdmulht.s%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move") - (set_attr "length""8")]) - -;; ;; [vmlaldavaq_p_u, vmlaldavaq_p_s]) ;; (define_insn "mve_vmlaldavaq_p_<supf><mode>" |