1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mavx512fp16" } */
       3  
       4  typedef _Float16 __v16hf __attribute__ ((__vector_size__ (32)));
       5  typedef _Float16 __m256h __attribute__ ((__vector_size__ (32), __may_alias__));
       6  
       7  __m256h
       8  __attribute__ ((noinline, noclone))
       9  foo1 (_Float16 x)
      10  {
      11    return __extension__ (__m256h)(__v16hf) { x, 0.0f, 0.0f, 0.0f,
      12                                              0.0f, 0.0f, 0.0f, 0.0f,
      13                                              0.0f, 0.0f, 0.0f, 0.0f,
      14                                              0.0f, 0.0f, 0.0f, 0.0f };
      15  }
      16  
      17  __m256h
      18  __attribute__ ((noinline, noclone))
      19  foo2 (_Float16 *x)
      20  {
      21    return __extension__ (__m256h)(__v16hf) { *x, 0.0f, 0.0f, 0.0f,
      22                                              0.0f, 0.0f, 0.0f, 0.0f,
      23                                              0.0f, 0.0f, 0.0f, 0.0f,
      24                                              0.0f, 0.0f, 0.0f, 0.0f };
      25  }
      26  
      27  /* { dg-final { scan-assembler-times "vmovw\[^\n\r]*xmm0" 3 { target { ! ia32 } } } } */
      28  /* { dg-final { scan-assembler-times "vmovw\[^\n\r]*xmm0" 2 { target { ia32 } } } } */