1 /* { dg-do run { target vect_cmdline_needed } } */
2 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details -fno-vect-cost-model" } */
3 /* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */
4 /* The IBM Z backend sets the min-vect-loop-bound param to 2 to avoid
5 awkward epilogue code generation in some cases. This line needs to
6 be removed after finding an alternate way to fix this. */
7 /* { dg-additional-options "--param min-vect-loop-bound=0" { target { s390*-*-* } } } */
8
9 #include <stdlib.h>
10
11 #define N 16
12
main()13 int main ()
14 {
15 struct {
16 char ca[N];
17 } s;
18 int i;
19
20 for (i = 0; i < N; i++)
21 {
22 s.ca[i] = 5;
23 }
24
25 /* check results: */
26 for (i = 0; i < N; i++)
27 {
28 if (s.ca[i] != 5)
29 abort ();
30 }
31
32 return 0;
33 }
34
35
36 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! avr-*-* } } } } */
37 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! avr-*-* } } } } */
38