[2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 2 Sep 2014 16:00:01 +0000 (16:00 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 2 Sep 2014 16:00:01 +0000 (16:00 +0000)
commite9e67af14893295ed164e269baa26c2325ae7cf1
tree2d73f5cd3efdee8c2e98c524a7c61ad296688a0d
parentababd936266a9d89b5e3bd2d9b63ac149c74733b
[2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.

PR target/62275
* config/arm/neon.md
(neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
<v_cmp_result>): 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.

From-SVN: r214826
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm_neon_builtins.def
gcc/config/arm/iterators.md
gcc/config/arm/neon.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/vect-lceilf_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/vect-lfloorf_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/vect-lroundf_1.c [new file with mode: 0644]