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