aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@arm.com>2023-02-27 18:50:28 +0000
committerChristophe Lyon <christophe.lyon@arm.com>2023-05-12 12:40:38 +0200
commitb74d6acf7366d96dee1f43667371df14a5882651 (patch)
tree02a4da6517c15f02a7c5b132d29e768bf993b7ff /gcc
parentaae9dfd3647b5e92f5d0118acd6bd35fde1cc0cc (diff)
downloadgcc-b74d6acf7366d96dee1f43667371df14a5882651.zip
gcc-b74d6acf7366d96dee1f43667371df14a5882651.tar.gz
gcc-b74d6acf7366d96dee1f43667371df14a5882651.tar.bz2
arm: [MVE intrinsics] factorize vmvnq
Factorize vmvnq builtins so that they use parameterized names. 2022-12-12 Christophe Lyon <christophe.lyon@arm.com> gcc/ * config/arm/iterators.md (mve_insn): Add vmvn. * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ... (@mve_<mve_insn>q_n_<supf><mode>): ... this. (mve_vmvnq_m_<supf><mode>): Rename into ... (@mve_<mve_insn>q_m_<supf><mode>): ... this. (mve_vmvnq_m_n_<supf><mode>): Rename into ... (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/arm/iterators.md3
-rw-r--r--gcc/config/arm/mve.md12
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md
index dfc8d9c..7fbfea4 100644
--- a/gcc/config/arm/iterators.md
+++ b/gcc/config/arm/iterators.md
@@ -1002,6 +1002,9 @@
(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")
+ (VMVNQ_M_N_S "vmvn") (VMVNQ_M_N_U "vmvn")
+ (VMVNQ_M_S "vmvn") (VMVNQ_M_U "vmvn")
+ (VMVNQ_N_S "vmvn") (VMVNQ_N_U "vmvn")
(VNEGQ_M_F "vneg")
(VNEGQ_M_S "vneg")
(VORRQ_M_N_S "vorr") (VORRQ_M_N_U "vorr")
diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md
index beca74d..57ba65d 100644
--- a/gcc/config/arm/mve.md
+++ b/gcc/config/arm/mve.md
@@ -459,14 +459,14 @@
;;
;; [vmvnq_n_u, vmvnq_n_s])
;;
-(define_insn "mve_vmvnq_n_<supf><mode>"
+(define_insn "@mve_<mve_insn>q_n_<supf><mode>"
[
(set (match_operand:MVE_5 0 "s_register_operand" "=w")
(unspec:MVE_5 [(match_operand:<V_elem> 1 "immediate_operand" "i")]
VMVNQ_N))
]
"TARGET_HAVE_MVE"
- "vmvn.i%#<V_sz_elem> %q0, %1"
+ "<mve_insn>.i%#<V_sz_elem>\t%q0, %1"
[(set_attr "type" "mve_move")
])
@@ -1953,7 +1953,7 @@
;;
;; [vmvnq_m_s, vmvnq_m_u])
;;
-(define_insn "mve_vmvnq_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")
@@ -1962,7 +1962,7 @@
VMVNQ_M))
]
"TARGET_HAVE_MVE"
- "vpst\;vmvnt %q0, %q2"
+ "vpst\;<mve_insn>t\t%q0, %q2"
[(set_attr "type" "mve_move")
(set_attr "length""8")])
@@ -2423,7 +2423,7 @@
;;
;; [vmvnq_m_n_u, vmvnq_m_n_s])
;;
-(define_insn "mve_vmvnq_m_n_<supf><mode>"
+(define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
[
(set (match_operand:MVE_5 0 "s_register_operand" "=w")
(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
@@ -2432,7 +2432,7 @@
VMVNQ_M_N))
]
"TARGET_HAVE_MVE"
- "vpst\;vmvnt.i%#<V_sz_elem> %q0, %2"
+ "vpst\;<mve_insn>t.i%#<V_sz_elem>\t%q0, %2"
[(set_attr "type" "mve_move")
(set_attr "length""8")])