1  /* PR target/93594 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx2 -masm=att" } */
       4  /* { dg-final { scan-assembler-times "vmovdqa\t%xmm0, %xmm0" 4 } } */
       5  /* { dg-final { scan-assembler-not "vpxor\t%" } } */
       6  /* { dg-final { scan-assembler-not "vinserti128\t\\\$" } } */
       7  
       8  #include <x86intrin.h>
       9  
      10  __m256i
      11  foo (__m128i x)
      12  {
      13    return _mm256_setr_m128i (x, _mm_setzero_si128 ());
      14  }
      15  
      16  __m256i
      17  bar (__m128i x)
      18  {
      19    return _mm256_set_m128i (_mm_setzero_si128 (), x);
      20  }
      21  
      22  __m256i
      23  baz (__m128i x)
      24  {
      25    return _mm256_insertf128_si256 (_mm256_setzero_si256 (), x, 0);
      26  }
      27  
      28  __m256i
      29  qux (__m128i x)
      30  {
      31    return _mm256_insertf128_si256 (_mm256_castsi128_si256 (x), _mm_setzero_si128 (), 1);
      32  }