1 /* { dg-require-effective-target vect_int } */
2 /* { dg-require-effective-target vect_perm } */
8 void __attribute__((noipa
)) foo()
10 for (int i
= 0; i
< 512; ++i
)
12 x
[1023 - (2*i
+1)] = y
[2*i
];
13 x
[1023 - (2*i
)] = y
[2*i
+1];
17 void __attribute__((noipa
)) bar()
19 for (int i
= 0; i
< 512; ++i
)
21 x
[1023 - (2*i
+1)] = y
[2*i
+1];
22 x
[1023 - (2*i
)] = y
[2*i
];
31 for (int i
= 0; i
< 1024; ++i
)
35 __asm__
volatile ("");
40 for (int i
= 0; i
< 1024; ++i
)
41 if (x
[i
] != y
[1023 - i
^1])
44 for (int i
= 0; i
< 1024; ++i
)
47 __asm__
volatile ("");
52 for (int i
= 0; i
< 1024; ++i
)
53 if (x
[i
] != y
[1023 - i
])
59 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" } } */