1178786Skmacy/* { dg-do compile } */
2178786Skmacy/* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-ifcvt-stats" { target *-*-* } } */
3178786Skmacy
4178786Skmacyvoid foo(const int * __restrict__ zr_in,
5178786Skmacy		const int * __restrict__ zi_in,
6178786Skmacy		const int * __restrict__ zk_in,
7178786Skmacy		int * __restrict__ zr_out,
8178786Skmacy		int * __restrict__ zi_out,
9178786Skmacy		int * __restrict__ zk_out,
10178786Skmacy		int cr, int ci)
11178786Skmacy{
12178786Skmacy  unsigned int pi;
13178786Skmacy  int tmp_r, tmp_i, tmp_k;
14178786Skmacy  for (pi = 0; pi < (512)*(512); pi++) {
15178786Skmacy    int zr = zr_in[pi];
16178786Skmacy    int zi = zi_in[pi];
17178786Skmacy    int zk = zk_in[pi];
18178786Skmacy
19178786Skmacy    if (zr*zr + zi*zi >= 4) {
20178786Skmacy      tmp_r = zr;
21178786Skmacy      tmp_i = zi;
22178786Skmacy      tmp_k = zk;
23178786Skmacy    } else {
24178786Skmacy      tmp_r = (zr*zr - zi*zi + cr);
25178786Skmacy      tmp_i = (2 * zr * zi + ci);
26178786Skmacy      tmp_k = zk + 1;
27178786Skmacy    }
28178786Skmacy    zr_out[pi] = tmp_r;
29178786Skmacy    zi_out[pi] = tmp_i;
30178786Skmacy    zk_out[pi] = tmp_k;
31178786Skmacy  }
32178786Skmacy}
33237920Snp
34237920Snp
35237920Snp/* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
36178786Skmacy/* { dg-final { cleanup-tree-dump "ifcvt" } } */
37178786Skmacy