[Bug tree-optimization/88464] AVX-512 vectorization of masked scatter failing with "not suitable for scatter store"

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Dec 15 11:03:00 GMT 2018


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

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Sat Dec 15 11:02:28 2018
New Revision: 267169

URL: https://gcc.gnu.org/viewcvs?rev=267169&root=gcc&view=rev
Log:
        PR tree-optimization/88464
        PR target/88498
        * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
        and mask with integral masktype, don't try to permute mask vectors,
        instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
        (vectorizable_store): Handle masked scatters with decl and integral
        mask type.
        (permute_vec_elements): Allow scalar_dest to be NULL.
        * config/i386/i386.c (ix86_get_builtin)
        <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
        <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
        to be the same.

        * gcc.target/i386/avx512f-pr88462-1.c: Rename to ...
        * gcc.target/i386/avx512f-pr88464-1.c: ... this.  Fix up PR number.
        Expect 4 vectorized loops instead of 3.
        (f4): New function.
        * gcc.target/i386/avx512f-pr88462-2.c: Rename to ...
        * gcc.target/i386/avx512f-pr88464-2.c: ... this.  Fix up PR number
        and #include.
        (avx512f_test): Prepare arguments for f4 and check the results.
        * gcc.target/i386/avx512f-pr88464-3.c: New test.
        * gcc.target/i386/avx512f-pr88464-4.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c
      - copied, changed from r267168,
trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c
      - copied, changed from r267168,
trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c
Removed:
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-stmts.c


More information about the Gcc-bugs mailing list