[PATCH, i386]: Vectorize copysign for x86

Uros Bizjak ubizjak@gmail.com
Tue Jul 14 17:28:00 GMT 2009


Hello!

Attached patch enables vectorization of copysign function for x86 SSE 
targets.

2009-07-14  Uros Bizjak <ubizjak@gmail.com>

     * config/i386/sse.md (copysign<mode>3): New expander.
     * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
     * config/i386/i386.c (ix86_build_signbit_mask): Make public.
     Use ix86_build_const_vector.
     (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
     IX86_BUILTIN_CPYSGNPD.
     (builtin_description): Add __builtin_ia32_copysignps and
     __builtin_ia32_copysignpd.
     (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
     and BUILT_IN_COPYSIGNF.

testsuite/ChangeLog:

2009-07-14  Uros Bizjak <ubizjak@gmail.com>

     * gcc.target/i386/sse-copysignf-vec.c: New test.
     * gcc.target/i386/sse2-copysign-vec.c: Ditto.

Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu 
{,-m32}. Will be committed to SVN mainline.

Uros.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: p.diff.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20090714/0dde1a51/attachment.txt>


More information about the Gcc-patches mailing list