1  /* { dg-do compile } */
       2  /* { dg-options "-march=sapphirerapids -O2" } */
       3  /* { dg-final { scan-assembler-times {vpunpcklqdq[ \t]+} 3 } } */
       4  /* { dg-final { scan-assembler-not {vpermi2[wb][ \t]+} } } */
       5  
       6  typedef _Float16 v8hf __attribute__((vector_size (16)));
       7  typedef _Float16 v4hf __attribute__((vector_size (8)));
       8  typedef short v8hi __attribute__((vector_size (16)));
       9  typedef short v4hi __attribute__((vector_size (8)));
      10  typedef char v16qi __attribute__((vector_size (16)));
      11  typedef char v8qi __attribute__((vector_size (8)));
      12  
      13  v8hf foo (v4hf a, v4hf b)
      14  {
      15    return __builtin_shufflevector (a, b, 0, 1, 2, 3, 4, 5, 6, 7);
      16  }
      17  
      18  v8hi foo2 (v4hi a, v4hi b)
      19  {
      20    return __builtin_shufflevector (a, b, 0, 1, 2, 3, 4, 5, 6, 7);
      21  }
      22  
      23  v16qi foo3 (v8qi a, v8qi b)
      24  {
      25    return __builtin_shufflevector (a, b, 0, 1, 2, 3, 4, 5, 6, 7,
      26  				  8, 9, 10, 11, 12, 13, 14, 15);
      27  }