1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -mzarch -march=arch13 -mzvector -fno-asynchronous-unwind-tables -dp" } */
       3  
       4  #include <vecintrin.h>
       5  
       6  vector signed short
       7  vlebrh (const signed short *a, vector signed short b)
       8  {
       9    return vec_revb (vec_insert (*a, vec_revb (b), 1));
      10  }
      11  
      12  /* { dg-final { scan-assembler-times "vlebrh.*\n\tvlebrh.*vec_set_bswap_vecv8hi" 1 } } */
      13  
      14  vector signed int
      15  vlebrf (const signed int *a, vector signed int b)
      16  {
      17    return vec_revb (vec_insert (*a, vec_revb (b), 1));
      18  }
      19  
      20  /* { dg-final { scan-assembler-times "vlebrf.*\n\tvlebrf.*vec_set_bswap_vecv4si" 1 } } */
      21  
      22  vector signed long long
      23  vlebrg (const signed long long *a, vector signed long long b)
      24  {
      25    return vec_revb (vec_insert (*a, vec_revb (b), 1));
      26  }
      27  
      28  /* { dg-final { scan-assembler-times "vlebrg.*\n\tvlebrg.*vec_set_bswap_vecv2di" 1 } } */