1 /* { dg-do compile } */
2 /* { dg-options "-O3 -mzarch -march=arch13 -mzvector" } */
3 
4 #include <vecintrin.h>
5 
6 /* reg -> mem */
7 void
test(vector double * target,vector double x)8 test (vector double *target, vector double x)
9 {
10   *target = vec_revb (x);
11 }
12 
13 void
test3(double * target,vector double x)14 test3 (double *target, vector double x)
15 {
16   vec_xst (vec_revb (x), 0, target);
17 }
18 
19 /* { dg-final { scan-assembler-times "vstbrg\t" 2 } } */
20 
21 /* mem -> mem: This becomes vlbrg + vst */
22 void
test2(vector double * target,vector double * x)23 test2 (vector double *target, vector double *x)
24 {
25   *target = vec_revb (*x);
26 }
27 
28 /* { dg-final { scan-assembler-times "vlbrg\t" 1 } } */
29