revert accidental commit of makereport
[libfirm] / ir / be / test / am_test.c
1 /*$ -fno-inline $*/
2
3 #include <stdio.h>
4
5 int val;
6
7 #define TTYPE(name,type,OP) \
8         type test_##name##type(void) { return val OP 7; }   \
9         type test2_##name##type(type v) { return val OP v; }  \
10         type testp_##name##type(void) { return 7 OP val; }  \
11         type testp2_##name##type(type v) { return v OP val; }
12
13 int test_cmp_testset(int v, int v2) { return (v & 14) > 0; }
14
15 #define T(name,OP) \
16         TTYPE(name,int,OP) \
17         TTYPE(name,short,OP) \
18         TTYPE(name,char,OP)
19
20 T(add,+)
21 T(sub,-)
22 T(or,|)
23 T(and,&)
24 T(xor,^)
25 T(cmp,<)
26 T(shl,<<)
27 T(shr,>>)
28
29 #undef T
30 #undef TTYPE
31
32 int main(void) {
33         int res1, res2, res3, res4;
34         val = 11;
35
36 #define TTYPE(name,type,OP)          \
37         res1 = test_##name##type();   \
38         res2 = test2_##name##type(20); \
39         res3 = testp_##name##type();   \
40         res4 = testp2_##name##type(20); \
41         printf("Test %s: %d (should be %d)\n", #name, res1, (type) 11 OP (type) 7);   \
42         printf("Test2 %s: %d (should be %d)\n", #name, res2, (type) 11 OP (type)20); \
43         printf("Testp %s: %d (should be %d)\n", #name, res3, (type) 7 OP (type)11);   \
44         printf("Testp2 %s: %d (should be %d)\n", #name, res4, (type) 20 OP (type)11);
45
46 #define T(name,OP) \
47         TTYPE(name,int,OP) \
48         TTYPE(name,short,OP) \
49         TTYPE(name,char,OP)
50
51         T(add,+)
52         T(sub,-)
53         T(or,|)
54         T(and,&)
55         T(xor,^)
56         T(cmp,<)
57         T(shl,<<)
58         T(shr,>>)
59
60         return 0;
61 }