combo error
[libfirm] / ir / be / test / gcd_bench.c
1 #include <stdio.h>
2 #include <limits.h>
3 #include <assert.h>
4
5 int gcd(int a, int b)
6 {
7     int i = 0;
8
9     while(a != b)
10     {
11         if(a > b) {
12             a = a - b;
13         }
14         else {
15             b = b - a;
16         }
17         ++i;
18     }
19     return a;
20 }
21
22 void gcd_no_out(int numruns) {
23   int i, j;
24
25   for (i = 1; i < numruns; i++) {
26     for (j = 1; j < numruns; j++) {
27           gcd(i, j);
28         }
29   }
30 }
31
32 void gcd_out(int numruns) {
33   int i, j;
34
35   for (i = 1; i < numruns; i++) {
36     for (j = 1; j < numruns; j++) {
37           printf("gcd(%d, %d) = %d\n", i, j, gcd(i, j));
38         }
39   }
40 }
41
42 int main(int argc, char **argv)
43 {
44   printf("gcd.c\n");
45
46   if (argc == 1) {
47     gcd_out(10);
48   }
49   else {
50         int numruns = 1000;
51         numruns = atoi(argv[1]);
52     gcd_out(numruns);
53   }
54
55   return 0;
56 }