1 /* { dg-do compile } */
2 /* { dg-options "-O3 -mzarch -march=arch13 -mzvector" } */
3 
4 /* The vector byte element reversal is actually implemented with a 128
5    bit bswap.  */
6 
7 #include <vecintrin.h>
8 
9 vector signed char
test(vector signed char x)10 test (vector signed char x)
11 {
12   return vec_reve (x);
13 }
14 
15 /* { dg-final { scan-assembler-times "vperm\t" 1 } } */
16 
17 
18 vector signed char
test2(vector signed char * x)19 test2 (vector signed char *x)
20 {
21   return vec_reve (*x);
22 }
23 
24 vector signed char
test3(signed char * x)25 test3 (signed char *x)
26 {
27   return vec_reve (vec_xl (0, x));
28 }
29 
30 /* { dg-final { scan-assembler-times "vlbrq\t" 2 } } */
31