/* { dg-do compile } */ | |
/* { dg-require-effective-target arm_dsp } */ | |
/* { dg-options "-O1 -fexpensive-optimizations" } */ | |
int mac(const int *a, const int *b, long long sqr, long long *sum) | |
{ | |
int i; | |
long long dotp = *sum; | |
for (i = 0; i < 150; i++) { | |
dotp += (long long) b[i] * a[i]; | |
sqr += (long long) b[i] * b[i]; | |
} | |
*sum = dotp; | |
return sqr; | |
} | |
/* { dg-final { scan-assembler-times "smlal" 2 } } */ |