Hi, The patch introduces alternative way of permutations for load groups of size 2 and 3 which should be faster on architectures with low parallelism. The patch gives 2 times gain on Silvermont to the test from PR52252 (in addition to already committed 3 times gain).
Patch passes bootstrap on x86. Make check is in progress. ChangeLog: 2014-05-28 Evgeny Stupachenko <evstu...@gmail.com> * config/i386/i386.c (ix86_have_vector_parallel_execution): New. (TARGET_VECTORIZE_HAVE_VECTOR_PARALLEL_EXECUTION): New. * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New. * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New. * target.def (have_vector_parallel_execution): New. * doc/tm.texi.in (have_vector_parallel_execution)): New. * doc/tm.texi: Regenerate. * targhooks.c (default_have_vector_parallel_execution): New. * tree-vect-data-refs.c (vect_shift_permute_load_chain): New. Introduces alternative way of loads group permutaions. (vect_transform_grouped_load): Try alternative way of permutaions. Evgeny
vect_groups.patch
Description: Binary data