blob: 0b204f6f21002fd03b93e473bbbe0396064d3ce3 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-msse2 -O2 -mno-sse3" } */
/* { dg-final { scan-assembler-times "shufps" 17 } } */
typedef float v4sf __attribute__((vector_size(16)));
v4sf
__attribute__((noipa))
foo (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 1, 2, 5, 3);
}
v4sf
__attribute__((noipa))
foo1 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 1, 5, 2, 3);
}
v4sf
__attribute__((noipa))
foo2 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 1, 2, 3, 5);
}
v4sf
__attribute__((noipa))
foo3 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 1, 4, 5, 6);
}
v4sf
__attribute__((noipa))
foo4 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 3, 6, 7, 5);
}
v4sf
__attribute__((noipa))
foo5 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 2, 4, 7, 6);
}
v4sf
__attribute__((noipa))
foo6 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 2, 4, 3, 6);
}
v4sf
__attribute__((noipa))
foo7 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 2, 3, 4, 6);
}
v4sf
__attribute__((noipa))
foo8 (v4sf a, v4sf b)
{
return __builtin_shufflevector (a, b, 2, 4, 6, 3);
}