1 /* { dg-do compile } */
2 /* { dg-options "-O" } */
3 
4 #include <arm_neon.h>
5 
6 poly64x2_t
foo(poly64x2_t a,poly64x2_t b)7 foo (poly64x2_t a, poly64x2_t b)
8 {
9   return vtrn1q_p64 (a, b);
10 }
11 
12 poly64x2_t
foo1(poly64x2_t a,poly64x2_t b)13 foo1 (poly64x2_t a, poly64x2_t b)
14 {
15   return vtrn2q_p64 (a, b);
16 }
17 
18 poly64x2_t
foo2(poly64x2_t a,poly64x2_t b)19 foo2 (poly64x2_t a, poly64x2_t b)
20 {
21   return vuzp1q_p64 (a, b);
22 }
23 
24 poly64x2_t
foo3(poly64x2_t a,poly64x2_t b)25 foo3 (poly64x2_t a, poly64x2_t b)
26 {
27   return vuzp2q_p64 (a, b);
28 }
29 
30 poly64x2_t
foo4(poly64x2_t a,poly64x2_t b)31 foo4 (poly64x2_t a, poly64x2_t b)
32 {
33   return vzip1q_p64 (a, b);
34 }
35 
36 poly64x2_t
foo5(poly64x2_t a,poly64x2_t b)37 foo5 (poly64x2_t a, poly64x2_t b)
38 {
39   return vzip2q_p64 (a, b);
40 }
41 
42 /* { dg-final { scan-assembler-times {zip1\tv0.2d, v0.2d, v1.2d} 3 } } */
43 /* { dg-final { scan-assembler-times {zip2\tv0.2d, v0.2d, v1.2d} 3 } } */
44 
45