6 #define test32_1 0x001200AB
7 #define test32_2 0x00341501
11 T tname(test_add_) (T a, T b) {
15 T tname(test_addi_) (T a) {
19 T tname(test_sub_) (T a, T b) {
23 T tname(test_subi_) (T a) {
27 T tname(test_subfi_) (T a) {
31 T tname(test_mul_) (T a, T b) {
35 T tname(test_muli_) (T a) {
39 T tname(test_div_) (T a, T b) {
43 T tname(test_divi_) (T a) {
48 T tname(test_abs_) (T a) {
49 return a < 0 ? -a : a;
52 T tname(test_neg_) (T a) {
58 T tname(test_shl_) (T a, T b) {
62 T tname(test_shli_) (T a) {
66 T tname(test_shr_) (T a, T b) {
70 T tname(test_shri_) (T a) {
74 T tname(test_mod_) (T a, T b) {
79 T tname(test_cmp_) (T a, T b) {
83 T tname(test_cmpi_) (T a) {
84 return (a>IMM) ? 1 : 0;
87 T tname(res16_) [TESTANZ];
88 T tname(res32_) [TESTANZ];
90 void tname(test_) () {
92 T *res16 = tname(res16_);
93 memset(res16, 0, TESTANZ * sizeof(res16[0]));
94 T *res32 = tname(res32_);
95 memset(res32, 0, TESTANZ * sizeof(res32[0]));
97 res16[ 0] = tname(test_add_) (test16_1, test16_2);
98 res16[ 1] = tname(test_sub_) (test16_1, test16_2);
99 res16[ 2] = tname(test_mul_) (test16_1, test16_2);
100 res16[ 3] = tname(test_div_) (test16_1, test16_2);
102 res16[ 4] = tname(test_shl_) (test16_1, test16_2);
103 res16[ 5] = tname(test_shr_) (test16_1, test16_2);
104 res16[ 6] = tname(test_mod_) (test16_1, test16_2);
106 res16[ 7] = tname(test_div_) (test16_1, test16_2);
107 res16[ 8] = tname(test_cmp_) (test16_1, test16_2);
108 res16[ 9] = tname(test_addi_) (test16_1);
109 res16[10] = tname(test_subi_) (test16_1);
110 res16[11] = tname(test_subfi_)(test16_1);
111 res16[12] = tname(test_muli_) (test16_1);
112 res16[13] = tname(test_divi_) (test16_1);
114 res16[14] = tname(test_shli_) (test16_1);
115 res16[15] = tname(test_shri_) (test16_1);
117 res16[16] = tname(test_cmpi_) (test16_1);
118 #ifndef TEST_UNSIGNED
119 res16[17] = tname(test_neg_) (test16_1);
120 res16[18] = tname(test_neg_) (-test16_1);
121 res16[19] = tname(test_abs_) (test16_1);
122 res16[20] = tname(test_abs_) (-test16_1);
125 res32[ 0] = tname(test_add_) (test32_1, test32_2);
126 res32[ 1] = tname(test_sub_) (test32_1, test32_2);
127 res32[ 2] = tname(test_mul_) (test32_1, test32_2);
128 res32[ 3] = tname(test_div_) (test32_1, test32_2);
130 res32[ 4] = tname(test_shl_) (test32_1, test32_2);
131 res32[ 5] = tname(test_shr_) (test32_1, test32_2);
132 res32[ 6] = tname(test_mod_) (test32_1, test32_2);
134 res32[ 7] = tname(test_div_) (test32_1, test32_2);
135 res32[ 8] = tname(test_cmp_) (test32_1, test32_2);
136 res32[ 9] = tname(test_addi_) (test32_1);
137 res32[10] = tname(test_subi_) (test32_1);
138 res32[11] = tname(test_subfi_)(test32_1);
139 res32[12] = tname(test_muli_) (test32_1);
140 res32[13] = tname(test_divi_) (test32_1);
142 res32[14] = tname(test_shli_) (test32_1);
143 res32[15] = tname(test_shri_) (test32_1);
145 res32[16] = tname(test_cmpi_) (test32_1);
146 #ifndef TEST_UNSIGNED
147 res32[17] = tname(test_neg_) (test32_1);
148 res32[18] = tname(test_neg_) (-test32_1);
149 res32[19] = tname(test_abs_) (test32_1);
150 res32[20] = tname(test_abs_) (-test32_1);
153 printf("Result for %s\n", __PRETTY_FUNCTION__);
154 for (i=0; i<TESTANZ; i++) {
156 printf("res16[%d] = %d\n", i, res16[i]);
157 printf("res32[%d] = %d\n", i, res32[i]);
159 printf("res16[%d] = %f\n", i, res16[i]);
160 printf("res32[%d] = %f\n", i, res32[i]);