combo error
[libfirm] / ir / be / test / llvm / matrixTranspose.c
1 typedef float fftw_real;
2
3 void complex_transpose(fftw_real *rA, fftw_real *iA, int n, int is, int js)
4 {
5      int i, j;
6
7      for (i = 1; i < n; ++i) {
8        for (j = 0; j < i; ++j) {
9          fftw_real ar, ai, br, bi;
10
11          ar = rA[i * is + j * js];
12          ai = iA[i * is + j * js];
13          br = rA[j * is + i * js];
14          bi = iA[j * is + i * js];
15
16          rA[j * is + i * js] = ar;
17          iA[j * is + i * js] = ai;
18          rA[i * is + j * js] = br;
19          iA[i * is + j * js] = bi;
20        }
21      }
22 }
23
24 fftw_real A[2048];
25 int main(int argc, char **argv)
26 {
27      int i;
28
29      fftw_real sum = 0.0;
30      for (i = 0; i < 2048; ++i) {
31        A[i] = i;
32        sum = sum + A[i];
33      }
34      printf("Checksum before = %lf\n", sum);
35
36      for (i = 0; i < 10; ++i) {
37        complex_transpose(A, A+1, 32, 2, 64);
38      }
39
40      sum = 0.0;
41      for (i = 0; i < 2048; ++i)
42        sum = sum + A[i];
43      printf("Checksum  after = %lf\n", sum);
44
45      return 0;
46 }