1  /* Verify that overloaded built-ins for vec_perm with int
       2     inputs produce the right code.  */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-require-effective-target powerpc_altivec_ok } */
       6  /* { dg-options "-maltivec -O2" } */
       7  
       8  #include <altivec.h>
       9  
      10  vector bool int
      11  testbi (vector bool int vbi2, vector bool int vbi3,
      12  	vector unsigned char vuc)
      13  {
      14    return vec_perm (vbi2, vbi3, vuc);
      15  }
      16  
      17  vector signed int
      18  testsi (vector signed int vsi2, vector signed int vsi3,
      19  	vector unsigned char vuc)
      20  {
      21    return vec_perm (vsi2, vsi3, vuc);
      22  }
      23  
      24  vector unsigned int
      25  testui (vector unsigned int vui2, vector unsigned int vui3,
      26  	vector unsigned char vuc)
      27  {
      28    return vec_perm (vui2, vui3, vuc);
      29  }
      30  
      31  /* { dg-final { scan-assembler-times {\m(?:v|xx)permr?\M} 3 } } */