/* { dg-do compile } */ | |
#include "tree-vect.h" | |
typedef signed char schar; | |
__attribute__((noipa, noinline, optimize("O3"))) | |
void foo(const schar *a, const schar *b, schar *c, int n) | |
{ | |
for (int i = 0; i < n; i++) | |
{ | |
unsigned u = __builtin_abs (a[i] - b[i]); | |
c[i] = u <= 7U ? u : 7U; | |
} | |
} | |
/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target aarch64*-*-* } } } */ | |
/* { dg-final { scan-tree-dump "vect_recog_abd_pattern: detected" "vect" { target aarch64*-*-* } } } */ |