(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
zvector/
vec-revb-store-double.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -mzarch -march=arch13 -mzvector" } */
       3  
       4  #include <vecintrin.h>
       5  
       6  /* reg -> mem */
       7  void
       8  test (vector double *target, vector double x)
       9  {
      10    *target = vec_revb (x);
      11  }
      12  
      13  void
      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
      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 } } */