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

Kyrill Tkachov kyrylo.tkachov@arm.com
Tue Sep 2 15:35:00 GMT 2014


Hi all,

In continuation of patch [1/2]...
We can use the vector forms of the vcvt{a,p,m} instructions to vectorise 
the l{round, ceil, floor}f functions.
Builtins are added and the TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION 
implementation is updated to wire up the vectorised forms of these 
functions to the midend.

Bootstrapped and tested on arm-none-linux-gnueabihf.

Ok for trunk?

Thanks,
Kyrill

2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     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.

2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-neon-vcvt.patch
Type: text/x-patch
Size: 7141 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140902/230770d3/attachment.bin>


More information about the Gcc-patches mailing list