X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Ftest%2Fam_test.c;h=d90210e35d4f48695d3fae1c3e29319573773e8b;hb=dd9c319a93406f9f34a33f8d8ab6ea3c0c5c4b88;hp=08ac1cec5ee487ca0536a01291dd71c354e4b08e;hpb=e1bfe8d072410f6ca115452bf9c1e3131fa27f4d;p=libfirm diff --git a/ir/be/test/am_test.c b/ir/be/test/am_test.c index 08ac1cec5..d90210e35 100644 --- a/ir/be/test/am_test.c +++ b/ir/be/test/am_test.c @@ -1,15 +1,22 @@ /*$ -fno-inline $*/ +#include + 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,-)