aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/iterators.md
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@arm.com>2023-02-24 10:38:02 +0000
committerChristophe Lyon <christophe.lyon@arm.com>2023-05-11 21:04:11 +0200
commitc68ccdf253275a5bc92237102777b246d259f6ac (patch)
tree9ea3ca339d5500d86a1d4319640d014d6c4d49fb /gcc/config/arm/iterators.md
parent4d97b9ca857a085a0b94aadb7aa8f5733cc34b16 (diff)
downloadgcc-c68ccdf253275a5bc92237102777b246d259f6ac.zip
gcc-c68ccdf253275a5bc92237102777b246d259f6ac.tar.gz
gcc-c68ccdf253275a5bc92237102777b246d259f6ac.tar.bz2
arm: [MVE intrinsics] factorize vmlaldavaq vmlaldavaxq vmlsldavaq vmlsldavaxq
Factorize vmlaldavaq, vmlaldavaxq, vmlsldavaq, vmlsldavaxq builtins so that they use the same parameterized names. 2022-10-25 Christophe Lyon <christophe.lyon@arm.com> gcc/ * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P): New. (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax. (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S, VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S. * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>) (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>) (mve_vmlaldavaxq_s<mode>): Merge into ... (@mve_<mve_insn>q_<supf><mode>): ... this. (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>) (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into ... (@mve_<mve_insn>q_p_<supf><mode>): ... this.
Diffstat (limited to 'gcc/config/arm/iterators.md')
-rw-r--r--gcc/config/arm/iterators.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md
index 729127d..7a88bc9 100644
--- a/gcc/config/arm/iterators.md
+++ b/gcc/config/arm/iterators.md
@@ -741,6 +741,20 @@
VMLSLDAVXQ_P_S
])
+(define_int_iterator MVE_VMLxLDAVAxQ [
+ VMLALDAVAQ_S VMLALDAVAQ_U
+ VMLALDAVAXQ_S
+ VMLSLDAVAQ_S
+ VMLSLDAVAXQ_S
+ ])
+
+(define_int_iterator MVE_VMLxLDAVAxQ_P [
+ VMLALDAVAQ_P_S VMLALDAVAQ_P_U
+ VMLALDAVAXQ_P_S
+ VMLSLDAVAQ_P_S
+ VMLSLDAVAXQ_P_S
+ ])
+
(define_int_iterator MVE_VRMLxLDAVxQ [
VRMLALDAVHQ_S VRMLALDAVHQ_U
VRMLALDAVHXQ_S
@@ -883,6 +897,10 @@
(VMLADAVQ_S "vmladav") (VMLADAVQ_U "vmladav")
(VMLADAVXQ_P_S "vmladavx")
(VMLADAVXQ_S "vmladavx")
+ (VMLALDAVAQ_P_S "vmlaldava") (VMLALDAVAQ_P_U "vmlaldava")
+ (VMLALDAVAQ_S "vmlaldava") (VMLALDAVAQ_U "vmlaldava")
+ (VMLALDAVAXQ_P_S "vmlaldavax")
+ (VMLALDAVAXQ_S "vmlaldavax")
(VMLALDAVQ_P_S "vmlaldav") (VMLALDAVQ_P_U "vmlaldav")
(VMLALDAVQ_S "vmlaldav") (VMLALDAVQ_U "vmlaldav")
(VMLALDAVXQ_P_S "vmlaldavx")
@@ -897,6 +915,10 @@
(VMLSDAVQ_S "vmlsdav")
(VMLSDAVXQ_P_S "vmlsdavx")
(VMLSDAVXQ_S "vmlsdavx")
+ (VMLSLDAVAQ_P_S "vmlsldava")
+ (VMLSLDAVAQ_S "vmlsldava")
+ (VMLSLDAVAXQ_P_S "vmlsldavax")
+ (VMLSLDAVAXQ_S "vmlsldavax")
(VMLSLDAVQ_P_S "vmlsldav")
(VMLSLDAVQ_S "vmlsldav")
(VMLSLDAVXQ_P_S "vmlsldavx")
@@ -2351,6 +2373,12 @@
(VRMLSLDAVHQ_S "s")
(VRMLSLDAVHXQ_P_S "s")
(VRMLSLDAVHXQ_S "s")
+ (VMLALDAVAXQ_P_S "s")
+ (VMLALDAVAXQ_S "s")
+ (VMLSLDAVAQ_P_S "s")
+ (VMLSLDAVAQ_S "s")
+ (VMLSLDAVAXQ_P_S "s")
+ (VMLSLDAVAXQ_S "s")
])
;; Both kinds of return insn.