1 /* { dg-do compile } */
2 /* { dg-options "-O3 -mzarch -march=arch13 -mzvector -fno-asynchronous-unwind-tables -dp" } */
3 
4 #include <vecintrin.h>
5 
6 void
vstebrh(signed short * a,vector signed short b)7 vstebrh (signed short *a, vector signed short b)
8 {
9   *a = __builtin_bswap16 (b[1]);
10 }
11 
12 /* { dg-final { scan-assembler-times "vstebrh.*\n\tvstebrh.*vec_extract_bswap_elemv8hi" 1 } } */
13 
14 void
vstebrf(int * a,vector int b)15 vstebrf (int *a, vector int b)
16 {
17   *a = __builtin_bswap32 (b[1]);
18 }
19 
20 /* { dg-final { scan-assembler-times "vstebrf.*\n\tvstebrf.*vec_extract_bswap_elemv4si" 1 } } */
21 
22 void
vstebrg(long long * a,vector long long b)23 vstebrg (long long *a, vector long long b)
24 {
25   *a = __builtin_bswap64 (b[1]);
26 }
27 
28 /* { dg-final { scan-assembler-times "vstebrg.*\n\tvstebrg.*vec_extract_bswap_elemv2di" 1 } } */
29