(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512fp16-11a.c
       1  /* { dg-do compile} */
       2  /* { dg-options "-O2 -mavx512fp16" } */
       3  
       4  #include <immintrin.h>
       5  __m512h
       6  __attribute__ ((noinline, noclone))
       7  vadd512 (__m512h a, __m512h b)
       8  {
       9    return a + b;
      10  }
      11  
      12  __m512h
      13  __attribute__ ((noinline, noclone))
      14  vsub512 (__m512h a, __m512h b)
      15  {
      16    return a - b;
      17  }
      18  
      19  __m512h
      20  __attribute__ ((noinline, noclone))
      21  vmul512 (__m512h a, __m512h b)
      22  {
      23    return a * b;
      24  }
      25  
      26  __m512h
      27  __attribute__ ((noinline, noclone))
      28  vdiv512 (__m512h a, __m512h b)
      29  {
      30    return a / b;
      31  }
      32  
      33  /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+\[^\n\r\]*%zmm\[01\]" 1 } } */
      34  /* { dg-final { scan-assembler-times "vsubph\[ \\t\]+\[^\n\r\]*%zmm\[01\]" 1 } } */
      35  /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+\[^\n\r\]*%zmm\[01\]" 1 } } */
      36  /* { dg-final { scan-assembler-times "vdivph\[ \\t\]+\[^\n\r\]*%zmm\[01\]" 1 } } */