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)8test (vector double *target, vector double x) 9 { 10 *target = vec_revb (x); 11 } 12 13 void test3(double * target,vector double x)14test3 (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)21test2 (vector double *target, vector double *x) 22 { 23 *target = vec_revb (*x); 24 } 25 26 /* { dg-final { scan-assembler-times "vperm\t" 3 } } */ 27