fix div bench in foo
[libc-test] / src / foo / foo.c
1 #include "test.h"
2
3 // dummy test
4
5 static int foo(int n) {
6         int i;
7
8         for (i = 0; n > 1 && i < 100; i++) {
9                 if (n % 2)
10                         n = 3*n + 1;
11                 else
12                         n /= 2;
13         }
14         return n;
15 }
16
17 void test_foo() {
18         int n = foo(123);
19
20         if (n != 1)
21                 error("foo(123):%d expected 1\n", n);
22 }
23
24 void bench_foo(int N) {
25         int i;
26
27         for (i = 0; i < N; i++)
28                 foo(123);
29 }
30
31 unsigned short ds = 12345;
32 unsigned short rs = 0;
33 void bench_div_short(int N) {
34         int i;
35
36         for (i = 0; i < N; i++)
37                 rs += (unsigned short)i/ds;
38 }
39
40 unsigned int di = 12345;
41 unsigned int ri = 0;
42 void bench_div_int(int N) {
43         unsigned int i;
44
45         for (i = 0; i < N; i++)
46                 ri += i/di;
47 }