1 /* { dg-do compile } */
2 /* { dg-require-effective-target arm_dsp } */
3 /* { dg-options "-O1 -fexpensive-optimizations" } */
4 
mac(const int * a,const int * b,long long sqr,long long * sum)5 int mac(const int *a, const int *b, long long sqr, long long *sum)
6 {
7   int i;
8   long long dotp = *sum;
9 
10   for (i = 0; i < 150; i++) {
11     dotp += (long long) b[i] * a[i];
12     sqr += (long long) b[i] * b[i];
13   }
14 
15   *sum = dotp;
16   return sqr;
17 }
18 
19 /* { dg-final { scan-assembler-times "smlal" 2 } } */
20