(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
vnni-auto-vectorize-1.c
       1  /* { dg-do compile } */                                     
       2  /* { dg-options "-mavx512f -mavx512vnni -mavx512vl -O2" } */
       3  
       4  /* { dg-final { scan-assembler "vpdpwssd\t" } } */
       5  /* { dg-final { scan-assembler "vpdpbusd\t" } } */
       6  /* { dg-final { scan-assembler-not "vpmaddwd\t" } } */
       7  
       8  int __attribute__((noinline, noclone, optimize("tree-vectorize")))
       9  sdot_prod_hi (short * restrict a, short * restrict b,
      10  	      int c, int n)
      11  {
      12    int i;
      13    for (i = 0; i < n; i++)
      14      {
      15        c += ((int) a[i] * (int) b[i]);
      16      }
      17    return c;
      18  }
      19  
      20  int __attribute__((noinline, noclone, optimize("tree-vectorize")))
      21  usdot_prod_qi (unsigned char * restrict a, char *restrict b,
      22  	       int c, int n)
      23  {
      24    int i;
      25    for (i = 0; i < n; i++)
      26      {
      27        c += ((int) a[i] * (int) b[i]);
      28      }
      29    return c;
      30  }