1 #define TEST(TYPE,MTYPE) \ 2 TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE; \ 3 TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE; \ 4 TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE; \ 5 TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE; \ 6 \ 7 extern void init##TYPE (TYPE *p, MTYPE x); \ 8 extern void checkg##TYPE (void); \ 9 extern void \ 10 test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \ 11 TYPE s5, TYPE s6, TYPE s7, TYPE s8, \ 12 TYPE s9, TYPE s10, TYPE s11, TYPE s12, \ 13 TYPE s13, TYPE s14, TYPE s15, TYPE s16); \ 14 extern void testva##TYPE (int n, ...); \ 15 \ 16 void \ 17 test2_##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \ 18 TYPE s5, TYPE s6, TYPE s7, TYPE s8) \ 19 { \ 20 test##TYPE (s1, g2s##TYPE, s2, g4s##TYPE, \ 21 s3, g6s##TYPE, s4, g8s##TYPE, \ 22 s5, g10s##TYPE, s6, g12s##TYPE, \ 23 s7, g14s##TYPE, s8, g16s##TYPE); \ 24 } \ 25 \ 26 void \ 27 testit##TYPE (void) \ 28 { \ 29 DEBUG_FPUTS (#TYPE); \ 30 DEBUG_FPUTS (" init: "); \ 31 init##TYPE ( &g1s##TYPE, (MTYPE)1); \ 32 init##TYPE ( &g2s##TYPE, (MTYPE)2); \ 33 init##TYPE ( &g3s##TYPE, (MTYPE)3); \ 34 init##TYPE ( &g4s##TYPE, (MTYPE)4); \ 35 init##TYPE ( &g5s##TYPE, (MTYPE)5); \ 36 init##TYPE ( &g6s##TYPE, (MTYPE)6); \ 37 init##TYPE ( &g7s##TYPE, (MTYPE)7); \ 38 init##TYPE ( &g8s##TYPE, (MTYPE)8); \ 39 init##TYPE ( &g9s##TYPE, (MTYPE)9); \ 40 init##TYPE (&g10s##TYPE, (MTYPE)10); \ 41 init##TYPE (&g11s##TYPE, (MTYPE)11); \ 42 init##TYPE (&g12s##TYPE, (MTYPE)12); \ 43 init##TYPE (&g13s##TYPE, (MTYPE)13); \ 44 init##TYPE (&g14s##TYPE, (MTYPE)14); \ 45 init##TYPE (&g15s##TYPE, (MTYPE)15); \ 46 init##TYPE (&g16s##TYPE, (MTYPE)16); \ 47 checkg##TYPE (); \ 48 DEBUG_NL; \ 49 DEBUG_FPUTS (#TYPE); \ 50 DEBUG_FPUTS (" test: "); \ 51 test##TYPE (g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 52 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 53 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \ 54 g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \ 55 DEBUG_NL; \ 56 DEBUG_FPUTS (#TYPE); \ 57 DEBUG_FPUTS (" testva:"); \ 58 DEBUG_NL; \ 59 testva##TYPE (1, \ 60 g1s##TYPE); \ 61 DEBUG_NL; \ 62 testva##TYPE (2, \ 63 g1s##TYPE, g2s##TYPE); \ 64 DEBUG_NL; \ 65 testva##TYPE (3, \ 66 g1s##TYPE, g2s##TYPE, g3s##TYPE); \ 67 DEBUG_NL; \ 68 testva##TYPE (4, \ 69 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE); \ 70 DEBUG_NL; \ 71 testva##TYPE (5, \ 72 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 73 g5s##TYPE); \ 74 DEBUG_NL; \ 75 testva##TYPE (6, \ 76 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 77 g5s##TYPE, g6s##TYPE); \ 78 DEBUG_NL; \ 79 testva##TYPE (7, \ 80 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 81 g5s##TYPE, g6s##TYPE, g7s##TYPE); \ 82 DEBUG_NL; \ 83 testva##TYPE (8, \ 84 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 85 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE); \ 86 DEBUG_NL; \ 87 testva##TYPE (9, \ 88 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 89 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 90 g9s##TYPE); \ 91 DEBUG_NL; \ 92 testva##TYPE (10, \ 93 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 94 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 95 g9s##TYPE, g10s##TYPE); \ 96 DEBUG_NL; \ 97 testva##TYPE (11, \ 98 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 99 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 100 g9s##TYPE, g10s##TYPE, g11s##TYPE); \ 101 DEBUG_NL; \ 102 testva##TYPE (12, \ 103 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 104 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 105 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE); \ 106 DEBUG_NL; \ 107 testva##TYPE (13, \ 108 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 109 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 110 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \ 111 g13s##TYPE); \ 112 DEBUG_NL; \ 113 testva##TYPE (14, \ 114 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 115 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 116 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \ 117 g13s##TYPE, g14s##TYPE); \ 118 DEBUG_NL; \ 119 testva##TYPE (15, \ 120 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 121 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 122 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \ 123 g13s##TYPE, g14s##TYPE, g15s##TYPE); \ 124 DEBUG_NL; \ 125 testva##TYPE (16, \ 126 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \ 127 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \ 128 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \ 129 g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \ 130 DEBUG_NL; \ 131 DEBUG_FPUTS (#TYPE); \ 132 DEBUG_FPUTS (" test2: "); \ 133 test2_##TYPE (g1s##TYPE, g3s##TYPE, g5s##TYPE, g7s##TYPE, \ 134 g9s##TYPE, g11s##TYPE, g13s##TYPE, g15s##TYPE); \ 135 DEBUG_NL; \ 136 } 137