| /* Test the `vextQp64' ARM Neon intrinsic. */ |
| |
| /* { dg-require-effective-target arm_crypto_ok } */ |
| /* { dg-options "-save-temps -O3 -fno-inline" } */ |
| /* { dg-add-options arm_crypto } */ |
| |
| #include "arm_neon.h" |
| |
| extern void abort (void); |
| |
| poly64x2_t |
| test_vextq_p64_1 (poly64x2_t a, poly64x2_t b) |
| { |
| return vextq_p64(a, b, 1); |
| } |
| |
| int |
| main (int argc, char **argv) |
| { |
| int i, off; |
| poly64x2_t in1 = {0, 1}; |
| poly64x2_t in2 = {2, 3}; |
| poly64x2_t actual = test_vextq_p64_1 (in1, in2); |
| for (i = 0; i < 2; i++) |
| if (actual[i] != i + 1) |
| abort (); |
| |
| return 0; |
| } |
| |
| /* { 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 } } */ |