extend am testapps to short and char types
[libfirm] / ir / be / test / am_test.c
index 08ac1ce..d90210e 100644 (file)
@@ -1,15 +1,22 @@
 /*$ -fno-inline $*/
 
+#include <stdio.h>
+
 int val;
 
-#define T(name,OP) \
-       int test_##name(void) { return val OP 7; }   \
-       int test2_##name(int v) { return val OP v; }  \
-       int testp_##name(void) { return 7 OP val; }  \
-       int testp2_##name(int v) { return v OP val; }
+#define TTYPE(name,type,OP) \
+       type test_##name##type(void) { return val OP 7; }   \
+       type test2_##name##type(type v) { return val OP v; }  \
+       type testp_##name##type(void) { return 7 OP val; }  \
+       type testp2_##name##type(type v) { return v OP val; }
 
 int test_cmp_testset(int v, int v2) { return (v & 14) > 0; }
 
+#define T(name,OP) \
+       TTYPE(name,int,OP) \
+       TTYPE(name,short,OP) \
+       TTYPE(name,char,OP)
+
 T(add,+)
 T(sub,-)
 T(or,|)
@@ -20,20 +27,26 @@ T(shl,<<)
 T(shr,>>)
 
 #undef T
+#undef TTYPE
 
 int main(void) {
        int res1, res2, res3, res4;
        val = 11;
 
-#define T(name,OP)          \
-       res1 = test_##name();   \
-       res2 = test2_##name(20); \
-       res3 = testp_##name();   \
-       res4 = testp2_##name(20); \
-       printf("Test %s: %d (should be %d)\n", #name, res1, 11 OP 7);   \
-       printf("Test2 %s: %d (should be %d)\n", #name, res2, 11 OP 20); \
-       printf("Testp %s: %d (should be %d)\n", #name, res3, 7 OP 11);   \
-       printf("Testp2 %s: %d (should be %d)\n", #name, res4, 20 OP 11);
+#define TTYPE(name,type,OP)          \
+       res1 = test_##name##type();   \
+       res2 = test2_##name##type(20); \
+       res3 = testp_##name##type();   \
+       res4 = testp2_##name##type(20); \
+       printf("Test %s: %d (should be %d)\n", #name, res1, (type) 11 OP (type) 7);   \
+       printf("Test2 %s: %d (should be %d)\n", #name, res2, (type) 11 OP (type)20); \
+       printf("Testp %s: %d (should be %d)\n", #name, res3, (type) 7 OP (type)11);   \
+       printf("Testp2 %s: %d (should be %d)\n", #name, res4, (type) 20 OP (type)11);
+
+#define T(name,OP) \
+       TTYPE(name,int,OP) \
+       TTYPE(name,short,OP) \
+       TTYPE(name,char,OP)
 
        T(add,+)
        T(sub,-)