[2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions

Programming / Compilers / GCC - ktkachov [138bc75d-0d04-0410-961f-82ee72b054a4] - 2 September 2014 11:00 UTC

PR target/62275
- config/arm/neon.md (neon_vcvt ): New pattern.
- config/arm/iterators.md (NEON_VCVT): New int iterator.
- config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
- config/arm/arm.c (arm_builtin_vectorized_function): Handle BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.

PR target/62275
- gcc.target/arm/vect-lceilf_1.c: New test.
- gcc.target/arm/vect-lfloorf_1.c: Likewise.
- gcc.target/arm/vect-lroundf_1.c: Likewise.

48bd692 [2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.
gcc/ChangeLog | 13 ++++++++++
gcc/config/arm/arm.c | 34 +++++++++++++++++++++++++
gcc/config/arm/arm_neon_builtins.def | 12 +++++++++
gcc/config/arm/iterators.md | 2 ++
gcc/config/arm/neon.md | 11 ++++++++
gcc/testsuite/ChangeLog | 7 +++++
gcc/testsuite/gcc.target/arm/vect-lceilf_1.c | 18 +++++++++++++
gcc/testsuite/gcc.target/arm/vect-lfloorf_1.c | 18 +++++++++++++
gcc/testsuite/gcc.target/arm/vect-lroundf_1.c | 18 +++++++++++++
9 files changed, 133 insertions(+)

Upstream: gcc.gnu.org


  • Share