This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] [rs6000] implement vector float->int conversion for altivec


Hi,

This patch models the vector float-to-int conversion for altivec
(int-to-float already existed) in the rs6000 implementation of the target
builtin vectorize_builtin_conversion.

A minor change for the definition of the builtin was required:
builtin_conversion (which is used for both int-to-float and float-to-int)
used to take as argument the rhs of the conversion. Instead, it now takes
as argument the type of the int side of the conversion, because we need to
know whether it's a conversion to/from signed or unsigned.

Testcases for this already exist in the testsuite (
vect-floatint-conversion-1.c, vect-floatint-conversion-2.c).

Passed bootstrap w vectorization, and the vectorizer testsuite with no
regressions, on powerpc970,
Passed bootstrap, and full regression testing with no regressions, on i386.

I need approval on the rs6000.c changes (the i386.c change is obvious).

thanks,
dorit

2008-08-06  Dorit Nuzman  <dorit@il.ibm.com>

        * tree-vect-transform.c (vectorizable_conversion): Pass the
integral
        type to vectorize.builtin_conversion.
        (vectorizable_conversion): Likewise..
        * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always
takes
        integral type as input.
        * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
        FIX_TRUNC_EXPR.

2008-08-06  Dorit Nuzman  <dorit@il.ibm.com>

        * lib/target-supports.exp
(check_effective_target_vect_floatint_cvt):
        Add powerpc.

(See attached file: fp2int.txt)

Attachment: fp2int.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]