1  /* PR target/93670 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx512vl -mno-avx512dq" } */
       4  
       5  #include <x86intrin.h>
       6  
       7  __m128i
       8  f1 (__m256i x)
       9  {
      10    return _mm256_extracti32x4_epi32 (x, 0);
      11  }
      12  
      13  __m128i
      14  f2 (__m256i x, __m128i w, __mmask8 m)
      15  {
      16    return _mm256_mask_extracti32x4_epi32 (w, m, x, 0);
      17  }
      18  
      19  __m128i
      20  f3 (__m256i x, __mmask8 m)
      21  {
      22    return _mm256_maskz_extracti32x4_epi32 (m, x, 0);
      23  }
      24  
      25  __m128
      26  f4 (__m256 x)
      27  {
      28    return _mm256_extractf32x4_ps (x, 0);
      29  }
      30  
      31  __m128
      32  f5 (__m256 x, __m128 w, __mmask8 m)
      33  {
      34    return _mm256_mask_extractf32x4_ps (w, m, x, 0);
      35  }
      36  
      37  __m128
      38  f6 (__m256 x, __mmask8 m)
      39  {
      40    return _mm256_maskz_extractf32x4_ps (m, x, 0);
      41  }
      42  
      43  __m128i
      44  f7 (__m256i x)
      45  {
      46    return _mm256_extracti32x4_epi32 (x, 1);
      47  }
      48  
      49  __m128i
      50  f8 (__m256i x, __m128i w, __mmask8 m)
      51  {
      52    return _mm256_mask_extracti32x4_epi32 (w, m, x, 1);
      53  }
      54  
      55  __m128i
      56  f9 (__m256i x, __mmask8 m)
      57  {
      58    return _mm256_maskz_extracti32x4_epi32 (m, x, 1);
      59  }
      60  
      61  __m128
      62  f10 (__m256 x)
      63  {
      64    return _mm256_extractf32x4_ps (x, 1);
      65  }
      66  
      67  __m128
      68  f11 (__m256 x, __m128 w, __mmask8 m)
      69  {
      70    return _mm256_mask_extractf32x4_ps (w, m, x, 1);
      71  }
      72  
      73  __m128
      74  f12 (__m256 x, __mmask8 m)
      75  {
      76    return _mm256_maskz_extractf32x4_ps (m, x, 1);
      77  }