1  /* PR target/103750 */
       2  /* { dg-do compile }  */
       3  /* { dg-options "-O2 -mavx512fp16 -mavx512vl" } */
       4  /* { dg-final { scan-assembler-not "kmov" { xfail ia32 } } } */
       5  /* xfail need to be fixed.  */
       6  
       7  #include <immintrin.h>
       8  extern __m128h* ph128;
       9  extern __m256h* ph256;
      10  extern __m512h* ph512;
      11  
      12  unsigned char
      13  sign_foo3 ()
      14  {
      15    __mmask8 mask1 = _mm_cmp_ph_mask (ph128[0], ph128[1], 1);
      16    __mmask8 mask2 = _mm_cmp_ph_mask (ph128[1], ph128[2], 1);
      17    return _kortestz_mask16_u8 (mask1, mask2);
      18  }
      19  
      20  unsigned char
      21  sign_foo4 ()
      22  {
      23    __mmask8 mask1 = _mm_cmp_ph_mask (ph128[0], ph128[1], 1);
      24    __mmask8 mask2 = _mm_cmp_ph_mask (ph128[1], ph128[2], 1);
      25    return _kortestz_mask32_u8 (mask1, mask2);
      26  }
      27  
      28  unsigned char
      29  sign_foo5 ()
      30  {
      31    __mmask8 mask1 = _mm_cmp_ph_mask (ph128[0], ph128[1], 1);
      32    __mmask8 mask2 = _mm_cmp_ph_mask (ph128[1], ph128[2], 1);
      33    return _kortestz_mask64_u8 (mask1, mask2);
      34  }
      35  
      36  unsigned char
      37  sign_foo6 ()
      38  {
      39    __mmask16 mask1 = _mm256_cmp_ph_mask (ph256[0], ph256[1], 1);
      40    __mmask16 mask2 = _mm256_cmp_ph_mask (ph256[2], ph256[3], 1);
      41    return _kortestz_mask32_u8 (mask1, mask2);
      42  }
      43  
      44  unsigned char
      45  sign_foo7 ()
      46  {
      47    __mmask16 mask1 = _mm256_cmp_ph_mask (ph256[0], ph256[1], 1);
      48    __mmask16 mask2 = _mm256_cmp_ph_mask (ph256[2], ph256[3], 1);
      49    return _kortestz_mask64_u8 (mask1, mask2);
      50  }
      51  
      52  unsigned char
      53  sign_foo8 ()
      54  {
      55    __mmask32 mask1 = _mm512_cmp_ph_mask (ph512[0], ph512[1], 1);
      56    __mmask32 mask2 = _mm512_cmp_ph_mask (ph512[2], ph512[3], 1);
      57    return _kortestz_mask64_u8 (mask1, mask2);
      58  }