1  /* { dg-do assemble { target avx512fp16 } } */
       2  /* { dg-options "-O2 -mavx512fp16" } */
       3  
       4  typedef _Float16 __m256h __attribute__ ((__vector_size__ (32), __may_alias__));
       5  typedef _Float16 __m512h __attribute__ ((__vector_size__ (64), __may_alias__));
       6  typedef _Float16 __m128h __attribute__ ((__vector_size__ (16), __may_alias__));
       7  
       8  extern __m128h x128, y128;
       9  extern __m256h x256, y256;
      10  extern __m512h x512, y512;
      11  
      12  __m128h
      13  foo1 (float f1, __m128h f2)
      14  {
      15    x128 = y128;
      16    return f2;
      17  }
      18  
      19  __m256h
      20  foo2 (float f1, __m256h f2)
      21  {
      22    x256 = y256;
      23    return f2;
      24  }
      25  
      26  __m512h
      27  foo3 (float f1, __m512h f2)
      28  {
      29    x512 = y512;
      30    return f2;
      31  }