1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
4 double *my_alloc1 (int len
) __attribute__((__assume_aligned__ (16)));
5 double *my_alloc2 (int len
) __attribute__((__assume_aligned__ (32, 16)));
11 double *__restrict o1
= my_alloc1 (len
);
12 double *__restrict o2
= my_alloc1 (len
);
13 double *__restrict o3
= my_alloc1 (len
);
14 double *__restrict i1
= my_alloc1 (len
);
15 double *__restrict i2
= my_alloc1 (len
);
16 for (i
= 0; i
< len
; ++i
)
18 o1
[i
] = i1
[i
] * i2
[i
];
19 o2
[i
] = i1
[i
] + i2
[i
];
20 o3
[i
] = i1
[i
] - i2
[i
];
28 double *__restrict o1
= my_alloc2 (len
);
29 double *__restrict o2
= my_alloc2 (len
);
30 double *__restrict o3
= my_alloc2 (len
);
31 double *__restrict i1
= my_alloc2 (len
);
32 double *__restrict i2
= my_alloc2 (len
);
33 for (i
= 0; i
< len
; ++i
)
35 o1
[i
] = i1
[i
] * i2
[i
];
36 o2
[i
] = i1
[i
] + i2
[i
];
37 o3
[i
] = i1
[i
] - i2
[i
];