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