simd.exp: Skip all tests if no arm_neon_ok effective target support.
[gcc.git] / gcc / testsuite / gcc.target / arm / simd / vextQp64_1.c
1 /* Test the `vextQp64' ARM Neon intrinsic. */
2
3 /* { dg-require-effective-target arm_crypto_ok } */
4 /* { dg-options "-save-temps -O3 -fno-inline" } */
5 /* { dg-add-options arm_crypto } */
6
7 #include "arm_neon.h"
8
9 extern void abort (void);
10
11 poly64x2_t
12 test_vextq_p64_1 (poly64x2_t a, poly64x2_t b)
13 {
14 return vextq_p64(a, b, 1);
15 }
16
17 int
18 main (int argc, char **argv)
19 {
20 int i, off;
21 poly64x2_t in1 = {0, 1};
22 poly64x2_t in2 = {2, 3};
23 poly64x2_t actual = test_vextq_p64_1 (in1, in2);
24 for (i = 0; i < 2; i++)
25 if (actual[i] != i + 1)
26 abort ();
27
28 return 0;
29 }
30
31 /* { dg-final { scan-assembler-times "vext\.64\[ \t\]+\[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, \[qQ\]\[0-9\]+, #\[0-9\]+!?\(?:\[ \t\]+@\[a-zA-Z0-9 \]+\)?\n" 1 } } */
32 /* { dg-final { cleanup-saved-temps } } */