1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -msse4.2 -mno-avx2" } */
       3  
       4  typedef int v4si __attribute__((vector_size(16)));
       5  typedef float v4sf __attribute__((vector_size(16)));
       6  
       7  v4si foo (v4si x)
       8  {
       9    return (v4si){ x[0], 1, x[2], 3 };
      10  }
      11  
      12  /* { dg-final { scan-assembler "pblendw" } } */
      13  
      14  v4si bar (v4sf x)
      15  {
      16    return (v4si){ 1, x[1], x[2], 3 };
      17  }
      18  
      19  /* { dg-final { scan-assembler "cvttps2dq" } } */
      20  /* { dg-final { scan-assembler "pblendw" } } */
      21  
      22  v4si baz (v4si x)
      23  {
      24    return (v4si) { x[1], x[2], x[3], 0 };
      25  }
      26  
      27  /* { dg-final { scan-assembler "psrldq" } } */