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