2 /* { dg-do compile } */
3 /* { dg-options "-O2 -msse4" } */
5 typedef double v2df
__attribute__((vector_size(16)));
6 typedef long long v2di
__attribute__((vector_size(16)));
7 v2df
foo1 (v2df x
, v2df y
)
11 return __builtin_shuffle (tem0
, tem1
, (v2di
) { 0, 3 });
14 v2df
foo2 (v2df x
, v2df y
)
18 return __builtin_shuffle (tem0
, tem1
, (v2di
) { 0, 3 });
21 v2df
foo3 (v2df x
, v2df y
)
25 return __builtin_shuffle (tem0
, tem1
, (v2di
) { 2, 1 });
28 v2df
foo4 (v2df x
, v2df y
)
32 return __builtin_shuffle (tem0
, tem1
, (v2di
) { 2, 1 });
35 /* { dg-final { scan-assembler-times "addsubpd" 4 } } */