[Bug target/87532] bad results from vec_extract(unsigned char, foo) dependent upon function inline

kelvin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Apr 22 16:09:00 GMT 2019


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

--- Comment #19 from kelvin at gcc dot gnu.org ---
Author: kelvin
Date: Mon Apr 22 16:09:13 2019
New Revision: 270493

URL: https://gcc.gnu.org/viewcvs?rev=270493&root=gcc&view=rev
Log:
gcc/ChangeLog:

2019-04-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        Backport from mainline
        2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        PR target/87532
        * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
        When handling vec_extract, use modular arithmetic to allow
        constant selectors greater than vector length.
        * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
        V1TImode vectors to have constant selector values greater than 0.
        Use modular arithmetic to compute vector index.
        (rs6000_split_vec_extract_var): Use modular arithmetic to compute
        index for in-memory vectors.  Correct code generation for
        in-register vectors.  Use inner mode of vector rather than mode of
        destination for move instruction.
        (altivec_expand_vec_ext_builtin): Use modular arithmetic to
        compute index.

        2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        PR target/87532
        * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
        Use QI inner mode with V16QI vector mode.

gcc/testsuite/ChangeLog:

2019-04-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        Backport from mainline
        2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        PR target/87532
        * gcc.target/powerpc/pr87532-mc.c: New test.
        * gcc.target/powerpc/pr87532.c: New test.
        * gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test.
        * gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test.
        * gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test.
        * gcc.target/powerpc/vsx-builtin-10a.c: New test.
        * gcc.target/powerpc/vsx-builtin-10b.c: New test.
        * gcc.target/powerpc/vsx-builtin-11a.c: New test.
        * gcc.target/powerpc/vsx-builtin-11b.c: New test.
        * gcc.target/powerpc/vsx-builtin-12a.c: New test.
        * gcc.target/powerpc/vsx-builtin-12b.c: New test.
        * gcc.target/powerpc/vsx-builtin-13a.c: New test.
        * gcc.target/powerpc/vsx-builtin-13b.c: New test.
        * gcc.target/powerpc/vsx-builtin-14a.c: New test.
        * gcc.target/powerpc/vsx-builtin-14b.c: New test.
        * gcc.target/powerpc/vsx-builtin-15a.c: New test.
        * gcc.target/powerpc/vsx-builtin-15b.c: New test.
        * gcc.target/powerpc/vsx-builtin-16a.c: New test.
        * gcc.target/powerpc/vsx-builtin-16b.c: New test.
        * gcc.target/powerpc/vsx-builtin-17a.c: New test.
        * gcc.target/powerpc/vsx-builtin-17b.c: New test.
        * gcc.target/powerpc/vsx-builtin-18a.c: New test.
        * gcc.target/powerpc/vsx-builtin-18b.c: New test.
        * gcc.target/powerpc/vsx-builtin-19a.c: New test.
        * gcc.target/powerpc/vsx-builtin-19b.c: New test.
        * gcc.target/powerpc/vsx-builtin-20a.c: New test.
        * gcc.target/powerpc/vsx-builtin-20b.c: New test.
        * gcc.target/powerpc/vsx-builtin-9a.c: New test.
        * gcc.target/powerpc/vsx-builtin-9b.c: New test.

        2019-03-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>

        PR target/89736
        * gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to
        restrict this test to vsx targets.


Added:
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/pr87532.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c
   
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c
    branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/config/rs6000/rs6000-c.c
    branches/gcc-7-branch/gcc/config/rs6000/rs6000.c
    branches/gcc-7-branch/gcc/config/rs6000/vsx.md
    branches/gcc-7-branch/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list