1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_int } */
3 /* { dg-additional-options "-fvect-cost-model=dynamic" } */
4
5 void bar (int *);
6 int foo (int *p, int a, int b)
7 {
8 int x[4];
9 int tem0, tem1, tem2, tem3;
10 int sum = 0;
11 p = __builtin_assume_aligned (p, __BIGGEST_ALIGNMENT__);
12 tem0 = p[0] + 1 + a;
13 sum += tem0;
14 x[0] = tem0;
15 tem1 = p[1] + 2 + b;
16 sum += tem1;
17 x[1] = tem1;
18 tem2 = p[2] + 3 + b;
19 sum += tem2;
20 x[2] = tem2;
21 tem3 = p[3] + 4 + a;
22 sum += tem3;
23 x[3] = tem3;
24 bar (x);
25 return sum;
26 }
27
28 /* { dg-final { scan-tree-dump "vectorization is not profitable" "slp2" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */