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] model misalignment idioms for the spu


This patch models the misalignment idioms (realign_load and mask_for_load)
to allow vectorization of misaligned code on the spu. Tested on the
vectorizer testcases. (There are 2 new XPASSes - vect-57 and vect-61 -
which are not related to this patch, and appeared recently on other
platforms too - probably related to the memssa commits).

ok to commit once passes full make check?

Thanks to Trevor for ironing the patch,

dorit

:ADDPATCH (spu):

ChangeLog:

        * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined.
        (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as
read
        only.
        (spu_expand_builtin_1): Handle the SPU_MASK_FOR_LOAD builtin.
        (spu_builtin_mask_for_load): New.
        * spu-builtins.def (SPU_MASK_FOR_LOAD): Define new builtin.
        * spu.md (UNSPEC_SPU_REALIGN_LOAD, UNSPEC_SPU_MASK_FOR_LOAD):New.
        (vec_realign_load_<mode>, spu_lvsr): New.


testsuite/ChangeLog:

      * lib/target-supports.exp (vect_no_align): Remove spu.

(See attached file: spurealign.dec13.txt)

Attachment: spurealign.dec13.txt
Description: Text document


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