1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -march=z14 -mzarch -mzvector --save-temps" } */
       3  /* { dg-do run { target { s390_z14_hw } } } */
       4  
       5  /*
       6   * The vector intrinsic vec_floate(a) rounds a vector of double-precision
       7   * numbers to single-precision. The results are stored in the even-numbered
       8   * target elements.
       9   */
      10  #include <assert.h>
      11  #include <vecintrin.h>
      12  
      13  int
      14  main (void)
      15  {
      16      vector double in = { 1.0, 2.0 };
      17  
      18      vector float result = vec_floate(in);
      19      /* { dg-final { scan-assembler-times {\n\tvledb} 1 } } */
      20  
      21      assert(result[0] == (float)in[0]);
      22      assert(result[2] == (float)in[1]);
      23  }