1  /* Test that we use vpdi in order to reverse vectors
       2     with two elements instead of creating a literal-pool entry
       3     and permuting with vperm.  */
       4  /* { dg-do compile { target { s390*-*-* } } } */
       5  /* { dg-options "-O2 -march=z14 -mzarch -mzvector -fno-unroll-loops" } */
       6  
       7  /* { dg-final { scan-assembler-times "vpdi\t" 4 } } */
       8  /* { dg-final { scan-assembler-times "verllg\t" 2 } } */
       9  /* { dg-final { scan-assembler-times "vperm" 0 } } */
      10  
      11  #include <vecintrin.h>
      12  
      13  vector double reved (vector double a)
      14  {
      15     return vec_reve (a);
      16  }
      17  
      18  vector long long revel (vector long long a)
      19  {
      20     return vec_reve (a);
      21  }
      22  
      23  vector float revef (vector float a)
      24  {
      25     return vec_reve (a);
      26  }
      27  
      28  vector int revei (vector int a)
      29  {
      30     return vec_reve (a);
      31  }