1  /* { dg-do compile { target int128 } } */
       2  /* { dg-options "-O3 -march=skylake" } */
       3  
       4  extern __int128 array[16];
       5  
       6  #define MK_CONST128_BROADCAST(A) \
       7    ((((unsigned __int128) (unsigned long long) A) << 64) \
       8     | ((unsigned __int128) (unsigned long long) A) )
       9  
      10  #define MK_CONST128_BROADCAST_SIGNED(A) \
      11    ((__int128) MK_CONST128_BROADCAST (A))
      12  
      13  void
      14  foo (void)
      15  {
      16    int i;
      17    for (i = 0; i < sizeof (array) / sizeof (array[0]); i++)
      18      array[i] = MK_CONST128_BROADCAST_SIGNED (-0x1ffffffffLL);
      19  }
      20  
      21  /* { dg-final { scan-assembler-times "movabsq" 1 } } */
      22  /* { dg-final { scan-assembler-times "(?:vpbroadcastq|vpunpcklqdq)\[\\t \]+\[^\n\]*, %xmm\[0-9\]+" 1 } } */
      23  /* { dg-final { scan-assembler-times "vmovdqa\[\\t \]%xmm\[0-9\]+, " 16 } } */