1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mavx512f -mfpmath=sse" } */
       3  
       4  typedef float To __attribute__ ((__vector_size__ (64)));
       5  typedef unsigned int From __attribute__ ((__vector_size__ (64)));
       6  
       7  #define A2(I) (float)a[I], (float)a[1+I]
       8  #define A4(I) A2(I), A2(2+I)
       9  #define A8(I) A4(I), A4(4+I)
      10  #define A16(I) A8(I), A8(8+I)
      11  
      12  To
      13  f(From a)
      14  {
      15    return __extension__ (To) {A16(0)};
      16  }
      17  
      18  /* { dg-final { scan-assembler "vcvtudq2ps" } } */