-
- Downloads
arm: [MVE intrinsics] factorize several unary operations
Factorize vabs vcls vclz vneg vqabs vqneg vrnda vrndm vrndn vrndp vrnd vrndx so that they use the same pattern. This patch introduces the mve_mnemo iterator because some of the involved intrinsics have a different name from their mnenonic: for instance vrndq vs vrintz. 2022-09-08 Christophe Lyon <christophe.lyon@arm.com> gcc/ * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY) (MVE_FP_UNARY, MVE_FP_M_UNARY): New. (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda, vrndm, vrndn, vrndp, vrnd, vrndx. (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S, VQABSQ_M_S, VQNEGQ_M_S. (mve_mnemo): New. * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>) (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>) (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ... (@mve_<mve_insn>q_f<mode>): ... this. (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ... (mve_v<absneg_str>q_f<mode>): ... this. (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ... (mve_v<absneg_str>q_s<mode>): ... this. (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ... (@mve_<mve_insn>q_<supf><mode>): ... this. (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>) (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>) (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ... (@mve_<mve_insn>q_m_<supf><mode>): ... this. (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>) (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>) (mve_vrndxq_m_f<mode>): Merge into ... (@mve_<mve_insn>q_m_f<mode>): ... this.
Loading
Please register or sign in to comment