aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-range.h
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2023-06-28 14:29:15 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2023-07-14 21:28:55 +0000
commitb22e70e8e97176561357f0ddcd84af889eb6b317 (patch)
treef90251925e4443c731842e170d687ae10cba6ec0 /gcc/value-range.h
parent43a0a5cd57eefd5a5bbead606ec4f6959af31802 (diff)
downloadgcc-b22e70e8e97176561357f0ddcd84af889eb6b317.zip
gcc-b22e70e8e97176561357f0ddcd84af889eb6b317.tar.gz
gcc-b22e70e8e97176561357f0ddcd84af889eb6b317.tar.bz2
arm: [MVE intrinsics] Factorize vcaddq vhcaddq
Factorize vcaddq, vhcaddq so that they use the same parameterized names. To be able to use the same patterns, we add a suffix to vcaddq. Note that vcadd uses UNSPEC_VCADDxx for builtins without predication, and VCADDQ_ROTxx_M_x (that is, not starting with "UNSPEC_"). The UNPEC_* names are also used by neon.md 2023-07-13 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * config/arm/arm_mve_builtins.def (vcaddq_rot90_, vcaddq_rot270_) (vcaddq_rot90_f, vcaddq_rot90_f): Add "_" or "_f" suffix. * config/arm/iterators.md (mve_insn): Add vcadd, vhcadd. (isu): Add UNSPEC_VCADD90, UNSPEC_VCADD270, VCADDQ_ROT270_M_U, VCADDQ_ROT270_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT90_M_S, VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S. (rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S, VCADDQ_ROT270_M_U, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S. (mve_rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S, VCADDQ_ROT270_M_U, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S. (supf): Add VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, UNSPEC_VCADD90, UNSPEC_VCADD270. (VCADDQ_ROT270_M): Delete. (VCADDQ_M_F VxCADDQ VxCADDQ_M): New. (VCADDQ_ROT90_M): Delete. * config/arm/mve.md (mve_vcaddq<mve_rot><mode>) (mve_vhcaddq_rot270_s<mode>, mve_vhcaddq_rot90_s<mode>): Merge into ... (@mve_<mve_insn>q<mve_rot>_<supf><mode>): ... this. (mve_vcaddq<mve_rot><mode>): Rename into ... (@mve_<mve_insn>q<mve_rot>_f<mode>): ... this (mve_vcaddq_rot270_m_<supf><mode>) (mve_vcaddq_rot90_m_<supf><mode>, mve_vhcaddq_rot270_m_s<mode>) (mve_vhcaddq_rot90_m_s<mode>): Merge into ... (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): ... this. (mve_vcaddq_rot270_m_f<mode>, mve_vcaddq_rot90_m_f<mode>): Merge into ... (@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions