1 /* { dg-do compile } */
2 /* { dg-options "-O3 -mzarch -march=z14 -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 /* mem -> mem */
20 void
test2(vector double * target,vector double * x)21 test2 (vector double *target, vector double *x)
22 {
23   *target = vec_revb (*x);
24 }
25 
26 /* { dg-final { scan-assembler-times "vperm\t" 3 } } */
27