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)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 /* { 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)23test2 (vector double *target, vector double *x) 24 { 25 *target = vec_revb (*x); 26 } 27 28 /* { dg-final { scan-assembler-times "vlbrg\t" 1 } } */ 29