Add execution tests of ARM EXT intrinsics
[official-gcc.git] / gcc / testsuite / gcc.target / arm / simd / vextQp64_1.c
blobe8b688da2b37bcb5cbda460ff0c80fedf362e4e0
1 /* Test the `vextQp64' ARM Neon intrinsic. */
3 /* { dg-do run } */
4 /* { dg-require-effective-target arm_crypto_ok } */
5 /* { dg-options "-save-temps -O3 -fno-inline" } */
6 /* { dg-add-options arm_crypto } */
8 #include "arm_neon.h"
10 extern void abort (void);
12 poly64x2_t
13 test_vextq_p64_1 (poly64x2_t a, poly64x2_t b)
15 return vextq_p64(a, b, 1);
18 int
19 main (int argc, char **argv)
21 int i, off;
22 poly64x2_t in1 = {0, 1};
23 poly64x2_t in2 = {2, 3};
24 poly64x2_t actual = test_vextq_p64_1 (in1, in2);
25 for (i = 0; i < 2; i++)
26 if (actual[i] != i + 1)
27 abort ();
29 return 0;
32 /* { 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 } } */
33 /* { dg-final { cleanup-saved-temps } } */