https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67071

--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Wed Aug 12 21:54:23 2015
New Revision: 226836

URL: https://gcc.gnu.org/viewcvs?rev=226836&root=gcc&view=rev
Log:
[gcc]
2015-08-12  Michael Meissner  <meiss...@linux.vnet.ibm.com>

        PR target/67071
        * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
        predicate to allow construction of vector constants using the
        VSLDOI vector shift instruction.

        * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
        declaration.

        * config/rs6000/rs6000.c (vspltis_shifted): New function to return
        the number of bytes to be shifted left and filled in with either
        all zero or all one bits.
        (gen_easy_altivec_constant): Call vsplitis_shifted if no other
        methods exist.
        (output_vec_const_move): On power8, generate XXLORC to generate
        a vector constant with all 1's. Do a split if we need to use a
        VSLDOI instruction.

        * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
        properly test for the MSB.

        * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
        vector constants that can be created with VSLDOI.

[gcc/testsuite]
2015-08-12  Michael Meissner  <meiss...@linux.vnet.ibm.com>

        PR target/67071
        * gcc.target/powerpc/pr67071-1.c: New file to test PR 67071 new
        vector constants.
        * gcc.target/powerpc/pr67071-2.c: Likewise.
        * gcc.target/powerpc/pr67071-3.c: Likewise.


Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr67071-1.c
    trunk/gcc/testsuite/gcc.target/powerpc/pr67071-2.c
    trunk/gcc/testsuite/gcc.target/powerpc/pr67071-3.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/altivec.md
    trunk/gcc/config/rs6000/predicates.md
    trunk/gcc/config/rs6000/rs6000-protos.h
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/rs6000.h
    trunk/gcc/testsuite/ChangeLog

Reply via email to