blob: f37a4d3361a3520552129d59972ae9ee869e9332 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/* { dg-do compile } */
/* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-ifcvt-stats" { target *-*-* } } */
void foo(const int * __restrict__ zr_in,
const int * __restrict__ zi_in,
const int * __restrict__ zk_in,
int * __restrict__ zr_out,
int * __restrict__ zi_out,
int * __restrict__ zk_out,
int cr, int ci)
{
unsigned int pi;
int tmp_r, tmp_i, tmp_k;
#if __SIZEOF_INT__ >= 4
for (pi = 0; pi < (512)*(512); pi++) {
#else
for (pi = 0; pi < (32)*(32); pi++) {
#endif
int zr = zr_in[pi];
int zi = zi_in[pi];
int zk = zk_in[pi];
if (zr*zr + zi*zi >= 4) {
tmp_r = zr;
tmp_i = zi;
tmp_k = zk;
} else {
tmp_r = (zr*zr - zi*zi + cr);
tmp_i = (2 * zr * zi + ci);
tmp_k = zk + 1;
}
zr_out[pi] = tmp_r;
zi_out[pi] = tmp_i;
zk_out[pi] = tmp_k;
}
}
/* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
/* { dg-final { cleanup-tree-dump "ifcvt" } } */
|