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