/* PR target/101021 */ /* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-O2 -mavx" } */ /* { dg-final { scan-assembler-not "vpshufb" } } */ typedef char S; typedef S V __attribute__((vector_size(8 * sizeof(S)))); V t1 (V x) { return __builtin_shuffle (x, (V) { 4,5,6,7, 0,1,2,3 }); } /* { dg-final { scan-assembler "vpshufd" } } */ V t2 (V x) { return __builtin_shuffle (x, (V) { 0,1, 2,3, 2,3, 6,7 }); } /* { dg-final { scan-assembler "vpshuflw" } } */