1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-O2 -mavx512vl" } */
       3  
       4  typedef int V __attribute__((vector_size (8)));
       5  typedef int W __attribute__((vector_size (16)));
       6  
       7  void
       8  f1 (V x, V y)
       9  {
      10    register W c __asm ("xmm16");
      11    c = (W) { x[0], x[1], x[0], x[1] };
      12    asm volatile ("" : "+v" (c));
      13  }
      14  
      15  void
      16  f2 (V x, V *y)
      17  {
      18    register W c __asm ("xmm16");
      19    c = (W) { x[0], x[1], (*y)[0], (*y)[1] };
      20    asm volatile ("" : "+v" (c));
      21  }
      22  
      23  /* { dg-final { scan-assembler-times "vpunpcklqdq\[^\n\r]*xmm16" 2 } } */