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 } } */