(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
usaba_1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -fno-tree-reassoc" } */
       3  
       4  #pragma GCC target "+nosve"
       5  
       6  #define MIN(a, b) ((a) < (b) ? (a) : (b))
       7  #define MAX(a, b) ((a) > (b) ? (a) : (b))
       8  
       9  #define FUNC(T, N, S)	\
      10  void saba_##S (T * __restrict__ a, T * __restrict__ b, T * __restrict__ c)	\
      11  {	\
      12    int i;	\
      13    for (i = 0; i < N; i++)	\
      14      c[i] += (MAX (a[i], b[i]) - MIN (a[i], b[i]));	\
      15  }
      16  
      17  FUNC (signed char, 16, qi)
      18  /* { dg-final { scan-assembler-times {saba\tv[0-9]+\.16b, v[0-9]+\.16b, v[0-9]+\.16b} 1 } } */
      19  FUNC (short, 8, hi)
      20  /* { dg-final { scan-assembler-times {saba\tv[0-9]+\.8h, v[0-9]+\.8h, v[0-9]+\.8h} 1 } } */
      21  FUNC (int, 4, si)
      22  /* { dg-final { scan-assembler-times {saba\tv[0-9]+\.4s, v[0-9]+\.4s, v[0-9]+\.4s} 1 } } */
      23  FUNC (unsigned char, 16, uqi)
      24  /* { dg-final { scan-assembler-times {uaba\tv[0-9]+\.16b, v[0-9]+\.16b, v[0-9]+.16b} 1 } } */
      25  FUNC (unsigned short, 8, uhi)
      26  /* { dg-final { scan-assembler-times {uaba\tv[0-9]+\.8h, v[0-9]+\.8h, v[0-9]+\.8h} 1 } } */
      27  FUNC (unsigned int, 4, usi)
      28  /* { dg-final { scan-assembler-times {uaba\tv[0-9]+\.4s, v[0-9]+\.4s, v[0-9]+\.4s} 1 } } */
      29