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