1 /* { dg-require-effective-target vect_int } */
8 int in
[2*K
][K
] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__
)));
10 int check_result
[K
] = {63,63,191,191,127,127,191,191,127,127,191,191,127,127,191,191,127,127,191,191,127,127,191,191,127,127,191,191,127,127,191,191};
12 __attribute__ ((noinline
)) void
15 int res_or
, res_and
, res_xor
, i
, j
, k
;
17 for (k
= 0; k
< K
; k
++)
20 for (j
= 0; j
< K
; j
++)
21 for (i
= 0; i
< K
; i
++)
22 res_or
= res_or
| in
[i
+k
][j
];
25 for (j
= 0; j
< K
; j
++)
26 for (i
= 0; i
< K
; i
++)
27 res_and
= res_and
& in
[i
+k
][j
];
30 for (j
= 0; j
< K
; j
++)
31 for (i
= 0; i
< K
; i
++)
32 res_xor
= res_xor
^ in
[i
+k
][j
];
34 out
[k
] = res_or
+ res_and
+ res_xor
;
44 for (j
= 0; j
< K
; j
++)
46 for (i
= 0; i
< 2*K
; i
++)
49 for (i
= 0; i
< K
; i
++)
55 for (k
= 0; k
< K
; k
++)
56 if (out
[k
] != check_result
[k
])
62 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 3 "vect" } } */
63 /* { dg-final { cleanup-tree-dump "vect" } } */