From 4953a88a9ff7268648e2d67cc4373420e887e773 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 1 Mar 2007 12:12:45 +0000 Subject: [PATCH] add some more stuff to optest --- ir/be/test/optest.c | 4 +++ ir/be/test/optest.h | 72 ++++++++++++++++++++++++++++++++------------- 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/ir/be/test/optest.c b/ir/be/test/optest.c index 0670c4819..e1a790fec 100644 --- a/ir/be/test/optest.c +++ b/ir/be/test/optest.c @@ -22,6 +22,8 @@ #define T char #include "optest.h" +#define TEST_UNSIGNED + #undef tname #undef T #define tname(x) x##unsigned_long @@ -53,6 +55,8 @@ #define T unsigned long long #include "optest.h" +#undef TEST_UNSIGNED + #undef tname #undef T #define tname(x) x##long_long diff --git a/ir/be/test/optest.h b/ir/be/test/optest.h index 8514cc92c..7478a5f8b 100644 --- a/ir/be/test/optest.h +++ b/ir/be/test/optest.h @@ -1,5 +1,5 @@ #ifndef TESTANZ -#define TESTANZ 16 +#define TESTANZ 21 #define IMM 23 #define test16_1 42 #define test16_2 11 @@ -44,6 +44,16 @@ T tname(test_divi_) (T a) { return a/IMM; } +#ifndef TEST_UNSIGNED +T tname(test_abs_) (T a) { + return a < 0 ? -a : a; +} + +T tname(test_neg_) (T a) { + return -a; +} +#endif + #ifndef TEST_FLOAT T tname(test_shl_) (T a, T b) { return a<>IMM; } + +T tname(test_mod_) (T a, T b) { + return a%b; +} #endif T tname(test_cmp_) (T a, T b) { @@ -76,7 +90,9 @@ T tname(res32_) [TESTANZ]; void tname(test_) () { int i; T *res16 = tname(res16_); + memset(res16, 0, TESTANZ * sizeof(res16[0])); T *res32 = tname(res32_); + memset(res32, 0, TESTANZ * sizeof(res32[0])); res16[ 0] = tname(test_add_) (test16_1, test16_2); res16[ 1] = tname(test_sub_) (test16_1, test16_2); @@ -85,19 +101,26 @@ void tname(test_) () { #ifndef TEST_FLOAT res16[ 4] = tname(test_shl_) (test16_1, test16_2); res16[ 5] = tname(test_shr_) (test16_1, test16_2); + res16[ 6] = tname(test_mod_) (test16_1, test16_2); #endif - res16[ 6] = tname(test_div_) (test16_1, test16_2); - res16[ 7] = tname(test_cmp_) (test16_1, test16_2); - res16[ 8] = tname(test_addi_) (test16_1); - res16[ 9] = tname(test_subi_) (test16_1); - res16[10] = tname(test_subfi_)(test16_1); - res16[11] = tname(test_muli_) (test16_1); - res16[12] = tname(test_divi_) (test16_1); + res16[ 7] = tname(test_div_) (test16_1, test16_2); + res16[ 8] = tname(test_cmp_) (test16_1, test16_2); + res16[ 9] = tname(test_addi_) (test16_1); + res16[10] = tname(test_subi_) (test16_1); + res16[11] = tname(test_subfi_)(test16_1); + res16[12] = tname(test_muli_) (test16_1); + res16[13] = tname(test_divi_) (test16_1); #ifndef TEST_FLOAT - res16[13] = tname(test_shli_) (test16_1); - res16[14] = tname(test_shri_) (test16_1); + res16[14] = tname(test_shli_) (test16_1); + res16[15] = tname(test_shri_) (test16_1); +#endif + res16[16] = tname(test_cmpi_) (test16_1); +#ifndef TEST_UNSIGNED + res16[17] = tname(test_neg_) (test16_1); + res16[18] = tname(test_neg_) (-test16_1); + res16[19] = tname(test_abs_) (test16_1); + res16[20] = tname(test_abs_) (-test16_1); #endif - res16[15] = tname(test_cmpi_) (test16_1); res32[ 0] = tname(test_add_) (test32_1, test32_2); res32[ 1] = tname(test_sub_) (test32_1, test32_2); @@ -106,19 +129,26 @@ void tname(test_) () { #ifndef TEST_FLOAT res32[ 4] = tname(test_shl_) (test32_1, test32_2); res32[ 5] = tname(test_shr_) (test32_1, test32_2); + res32[ 6] = tname(test_mod_) (test32_1, test32_2); #endif - res32[ 6] = tname(test_div_) (test32_1, test32_2); - res32[ 7] = tname(test_cmp_) (test32_1, test32_2); - res32[ 8] = tname(test_addi_) (test32_1); - res32[ 9] = tname(test_subi_) (test32_1); - res32[10] = tname(test_subfi_)(test32_1); - res32[11] = tname(test_muli_) (test32_1); - res32[12] = tname(test_divi_) (test32_1); + res32[ 7] = tname(test_div_) (test32_1, test32_2); + res32[ 8] = tname(test_cmp_) (test32_1, test32_2); + res32[ 9] = tname(test_addi_) (test32_1); + res32[10] = tname(test_subi_) (test32_1); + res32[11] = tname(test_subfi_)(test32_1); + res32[12] = tname(test_muli_) (test32_1); + res32[13] = tname(test_divi_) (test32_1); #ifndef TEST_FLOAT - res32[13] = tname(test_shli_) (test32_1); - res32[14] = tname(test_shri_) (test32_1); + res32[14] = tname(test_shli_) (test32_1); + res32[15] = tname(test_shri_) (test32_1); +#endif + res32[16] = tname(test_cmpi_) (test32_1); +#ifndef TEST_UNSIGNED + res32[17] = tname(test_neg_) (test32_1); + res32[18] = tname(test_neg_) (-test32_1); + res32[19] = tname(test_abs_) (test32_1); + res32[20] = tname(test_abs_) (-test32_1); #endif - res32[15] = tname(test_cmpi_) (test32_1); printf("Result for %s\n", __PRETTY_FUNCTION__); for (i=0; i