1 /* { dg-do compile } */
5 transpose4x4(vector
float *matrix
)
7 vector
float v0
, v1
, v2
, v3
;
9 v0
= vec_mergeh(matrix
[0], matrix
[2]);
10 v1
= vec_mergel(matrix
[0], matrix
[2]);
11 v2
= vec_mergeh(matrix
[1], matrix
[3]);
12 v3
= vec_mergel(matrix
[1], matrix
[3]);
14 matrix
[0] = vec_mergeh(v0
, v2
);
15 matrix
[1] = vec_mergel(v0
, v2
);
16 matrix
[2] = vec_mergeh(v1
, v3
);
17 matrix
[3] = vec_mergel(v1
, v3
);
21 vec_ifft64(vector
float *x0
, vector
float *x1
)
24 vector
float real
[4], imag
[4];
25 vector
float c0r
, c1r
, c2r
, c3r
, c0i
, c1i
, c2i
, c3i
;
26 vector
float d0r
, d1r
, d2r
, d3r
, d0i
, d1i
, d2i
, d3i
;
31 * Stage 1: t=1 => k = 0, j = 0..15
32 * ================================
49 ******************************************************/
63 d0r
= vec_add(c0r
, c2r
);
64 d1r
= vec_sub(c0r
, c2r
);
65 d2r
= vec_add(c1r
, c3r
);
66 d3r
= vec_sub(c3i
, c1i
);
68 d0i
= vec_add(c0i
, c2i
);
69 d1i
= vec_sub(c0i
, c2i
);
70 d2i
= vec_add(c1i
, c3i
);
71 d3i
= vec_sub(c1r
, c3r
);
73 /* Calculate real{x1} */
74 real
[0] = vec_add(d0r
, d2r
);
75 real
[1] = vec_add(d1r
, d3r
);
76 real
[2] = vec_sub(d0r
, d2r
);
77 real
[3] = vec_sub(d1r
, d3r
);
81 /* Calculate imag{x1} */
82 imag
[0] = vec_add(d0i
, d2i
);
83 imag
[1] = vec_add(d1i
, d3i
);
84 imag
[2] = vec_sub(d0i
, d2i
);
85 imag
[3] = vec_sub(d1i
, d3i
);