(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr100865-9a.c
       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 short) A) << 112) \
       8     | (((unsigned __int128) (unsigned short) A) << 96) \
       9     | (((unsigned __int128) (unsigned short) A) << 80) \
      10     | (((unsigned __int128) (unsigned short) A) << 64) \
      11     | (((unsigned __int128) (unsigned short) A) << 48) \
      12     | (((unsigned __int128) (unsigned short) A) << 32) \
      13     | (((unsigned __int128) (unsigned short) A) << 16) \
      14     | ((unsigned __int128) (unsigned short) A) )
      15  
      16  void
      17  foo (void)
      18  {
      19    int i;
      20    for (i = 0; i < sizeof (array) / sizeof (array[0]); i++)
      21      array[i] = MK_CONST128_BROADCAST (0x1fff);
      22  }
      23  
      24  /* { dg-final { scan-assembler-times "vpbroadcastw\[\\t \]+%xmm\[0-9\]+, %xmm\[0-9\]+" 1 } } */
      25  /* { dg-final { scan-assembler-times "vmovdqa\[\\t \]%xmm\[0-9\]+, " 16 } } */