Hi All, Here is a simple patch which generates on-operand vperm instructions introduced in knl. Using this patch we got +5% speed-up on one important benchmark.
Bootstrapping and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2016-06-29 Yuri Rumyantsev <ysrum...@gmail.com> * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand permutation for TARGET_AVX512F. (ix86_expand_vec_one_operand_perm_avx512): New function. (expand_vec_perm_1): Invoke introduced function. * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since it may be not valid after vectorization. gcc/testsuite/ChangeLog * gcc/testsuite/gcc.target/i386/avx512f-vect-perm-1.c: New test. * gcc/testsuite/gcc.target/i386/avx512f-vect-perm-2.c: New test.
patch
Description: Binary data