On Tue, Apr 29, 2014 at 07:58:39AM -0700, H.J. Lu wrote: > On Tue, Apr 29, 2014 at 6:50 AM, Evgeny Stupachenko <evstu...@gmail.com> > wrote: > > The patch adds use of palignr instruction, when we have one operand > > permutation like: > > {5 6 7 0 1 2 3 4}: > > > > Treating this as {5 6 7 8 9 a b c} on 2 operands, and therefore palignr on > > 5. > > > > Bootstrap and make check passed. > > > > Is it ok? > > > > Evgeny > > > > 2014-04-29 Evgeny Stupachenko <evstu...@gmail.com> > > > > * config/i386/i386.c (expand_vec_perm_palignr_one_operand): New. > > Enables PALIGNR on one operand permutation. > > * config/i386/i386.c (expand_vec_perm_1): Try PALIGNR on one > > operand. > > > > > > I think it is better to include some testcases in this > patch so that the backend change and its testcases > are self-contained.
Note that most likely it should be already covered by gcc.dg/torture/vshuf*.c, especially with GCC_TEST_RUN_EXPENSIVE=1. Though, apparently we need to add new tests for AVX-512, because v64qi, v32hi, v16si and v8di aren't covered (the last 3 are trivial, for v64qi supposedly we'd need to write new vshuf-64.inc. Jakub