This is the mail archive of the gcc-bugs@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]

[Bug target/81593] Optimize PowerPC vector set from vector extract


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

--- Comment #7 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Author: aldyh
Date: Wed Sep 13 16:38:06 2017
New Revision: 252334

URL: https://gcc.gnu.org/viewcvs?rev=252334&root=gcc&view=rev
Log:
[gcc]
2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

        PR target/81593
        * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
        constraints since the -mupper-regs-* switches have been
        eliminated.
        (vsx_concat_<mode>_1): New combiner insns to recognize inserting
        into a vector from a double word element that was extracted from
        another vector, and eliminate extra XXPERMDI instructions.
        (vsx_concat_<mode>_2): Likewise.
        (vsx_concat_<mode>_3): Likewise.
        (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
        concat to allow optimizing inserts from previous extracts.

[gcc/testsuite]
2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

        PR target/81593
        * gcc.target/powerpc/vec-setup.h: New tests to test various
        combinations of setting up vectors of 2 double word elements.
        * gcc.target/powerpc/vec-setup-long.c: Likewise.
        * gcc.target/powerpc/vec-setup-double.c: Likewise.
        * gcc.target/powerpc/vec-setup-be-long.c: Likewise.
        * gcc.target/powerpc/vec-setup-be-double.c: Likewise.
        * gcc.target/powerpc/vsx-extract-6.c: New tests for optimzing
        vector inserts from vector extracts.
        * gcc.target/powerpc/vsx-extract-7.c: Likewise.

Added:
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vec-setup-be-double.c
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vec-setup-be-long.c
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vec-setup-double.c
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vec-setup-long.c
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vec-setup.h
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c
    branches/range-gen2/gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c
Modified:
    branches/range-gen2/gcc/ChangeLog
    branches/range-gen2/gcc/config/rs6000/vsx.md
    branches/range-gen2/gcc/testsuite/ChangeLog

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