1 #include "compat-common.h"
3 /* Turn off checking for variable arguments with -DSKIPVA. */
10 #define T(N, NAME, TYPE) \
11 struct S##NAME##N { TYPE i[N]; }; \
12 struct S##NAME##N g1s##NAME##N, g2s##NAME##N; \
13 struct S##NAME##N g3s##NAME##N, g4s##NAME##N; \
14 struct S##NAME##N g5s##NAME##N, g6s##NAME##N; \
15 struct S##NAME##N g7s##NAME##N, g8s##NAME##N; \
16 struct S##NAME##N g9s##NAME##N, g10s##NAME##N; \
17 struct S##NAME##N g11s##NAME##N, g12s##NAME##N; \
18 struct S##NAME##N g13s##NAME##N, g14s##NAME##N; \
19 struct S##NAME##N g15s##NAME##N, g16s##NAME##N; \
21 extern void init##NAME##N (struct S##NAME##N *p, int i); \
22 extern void checkg##NAME##N (void); \
23 extern struct S##NAME##N test0##NAME##N (void); \
24 extern struct S##NAME##N test1##NAME##N (struct S##NAME##N); \
25 extern struct S##NAME##N testva##NAME##N (int n, ...); \
28 check##NAME##N (struct S##NAME##N *p, int i) \
32 for (j = 0; j < N; j++) \
33 if (p->i[j] != (TYPE) (i + j)) \
40 testit##NAME##N (void) \
42 struct S##NAME##N rslt; \
43 DEBUG_FPUTS (#NAME "[" #N "]"); \
44 DEBUG_FPUTS (" init: "); \
45 init##NAME##N ( &g1s##NAME##N, 1*16); \
46 init##NAME##N ( &g2s##NAME##N, 2*16); \
47 init##NAME##N ( &g3s##NAME##N, 3*16); \
48 init##NAME##N ( &g4s##NAME##N, 4*16); \
49 init##NAME##N ( &g5s##NAME##N, 5*16); \
50 init##NAME##N ( &g6s##NAME##N, 6*16); \
51 init##NAME##N ( &g7s##NAME##N, 7*16); \
52 init##NAME##N ( &g8s##NAME##N, 8*16); \
53 init##NAME##N ( &g9s##NAME##N, 9*16); \
54 init##NAME##N (&g10s##NAME##N, 10*16); \
55 init##NAME##N (&g11s##NAME##N, 11*16); \
56 init##NAME##N (&g12s##NAME##N, 12*16); \
57 init##NAME##N (&g13s##NAME##N, 13*16); \
58 init##NAME##N (&g14s##NAME##N, 14*16); \
59 init##NAME##N (&g15s##NAME##N, 15*16); \
60 init##NAME##N (&g16s##NAME##N, 16*16); \
63 DEBUG_FPUTS (#NAME "[" #N "]"); \
64 DEBUG_FPUTS (" test0: "); \
65 rslt = test0##NAME##N (); \
66 check##NAME##N (&rslt, 1*16); \
68 DEBUG_FPUTS (#NAME "[" #N "]"); \
69 DEBUG_FPUTS (" test1: "); \
70 rslt = test1##NAME##N (g1s##NAME##N); \
71 check##NAME##N (&rslt, 1*16); \
75 DEBUG_FPUTS (#NAME "[" #N "]"); \
76 DEBUG_FPUTS (" testva: "); \
77 rslt = testva##NAME##N (1, g1s##NAME##N); \
78 check##NAME##N (&rslt, 1*16); \
79 rslt = testva##NAME##N (5, \
80 g1s##NAME##N, g2s##NAME##N, \
81 g3s##NAME##N, g4s##NAME##N, \
83 check##NAME##N (&rslt, 5*16); \
84 rslt = testva##NAME##N (9, \
85 g1s##NAME##N, g2s##NAME##N, \
86 g3s##NAME##N, g4s##NAME##N, \
87 g5s##NAME##N, g6s##NAME##N, \
88 g7s##NAME##N, g8s##NAME##N, \
90 check##NAME##N (&rslt, 9*16); \
91 rslt = testva##NAME##N (16, \
92 g1s##NAME##N, g2s##NAME##N, \
93 g3s##NAME##N, g4s##NAME##N, \
94 g5s##NAME##N, g6s##NAME##N, \
95 g7s##NAME##N, g8s##NAME##N, \
96 g9s##NAME##N, g10s##NAME##N, \
97 g11s##NAME##N, g12s##NAME##N, \
98 g13s##NAME##N, g14s##NAME##N, \
99 g15s##NAME##N, g16s##NAME##N); \
100 check##NAME##N (&rslt, 16*16); \
105 T(0, uc, unsigned char)
106 T(1, uc, unsigned char)
107 T(2, uc, unsigned char)
108 T(3, uc, unsigned char)
109 T(4, uc, unsigned char)
110 T(5, uc, unsigned char)
111 T(6, uc, unsigned char)
112 T(7, uc, unsigned char)
113 T(8, uc, unsigned char)
114 T(9, uc, unsigned char)
115 T(10, uc, unsigned char)
116 T(11, uc, unsigned char)
117 T(12, uc, unsigned char)
118 T(13, uc, unsigned char)
119 T(14, uc, unsigned char)
120 T(15, uc, unsigned char)
121 T(0, us, unsigned short)
122 T(1, us, unsigned short)
123 T(2, us, unsigned short)
124 T(3, us, unsigned short)
125 T(4, us, unsigned short)
126 T(5, us, unsigned short)
127 T(6, us, unsigned short)
128 T(7, us, unsigned short)
129 T(8, us, unsigned short)
130 T(9, us, unsigned short)
131 T(10, us, unsigned short)
132 T(11, us, unsigned short)
133 T(12, us, unsigned short)
134 T(13, us, unsigned short)
135 T(14, us, unsigned short)
136 T(15, us, unsigned short)
137 T(0, ui, unsigned int)
138 T(1, ui, unsigned int)
139 T(2, ui, unsigned int)
140 T(3, ui, unsigned int)
141 T(4, ui, unsigned int)
142 T(5, ui, unsigned int)
143 T(6, ui, unsigned int)
144 T(7, ui, unsigned int)
145 T(8, ui, unsigned int)
146 T(9, ui, unsigned int)
147 T(10, ui, unsigned int)
148 T(11, ui, unsigned int)
149 T(12, ui, unsigned int)
150 T(13, ui, unsigned int)
151 T(14, ui, unsigned int)
152 T(15, ui, unsigned int)
159 #define T(N, NAME, TYPE) testit##NAME##N ();
161 T(0, uc, unsigned char)
162 T(1, uc, unsigned char)
163 T(2, uc, unsigned char)
164 T(3, uc, unsigned char)
165 T(4, uc, unsigned char)
166 T(5, uc, unsigned char)
167 T(6, uc, unsigned char)
168 T(7, uc, unsigned char)
169 T(8, uc, unsigned char)
170 T(9, uc, unsigned char)
171 T(10, uc, unsigned char)
172 T(11, uc, unsigned char)
173 T(12, uc, unsigned char)
174 T(13, uc, unsigned char)
175 T(14, uc, unsigned char)
176 T(15, uc, unsigned char)
177 T(0, us, unsigned short)
178 T(1, us, unsigned short)
179 T(2, us, unsigned short)
180 T(3, us, unsigned short)
181 T(4, us, unsigned short)
182 T(5, us, unsigned short)
183 T(6, us, unsigned short)
184 T(7, us, unsigned short)
185 T(8, us, unsigned short)
186 T(9, us, unsigned short)
187 T(10, us, unsigned short)
188 T(11, us, unsigned short)
189 T(12, us, unsigned short)
190 T(13, us, unsigned short)
191 T(14, us, unsigned short)
192 T(15, us, unsigned short)
193 T(0, ui, unsigned int)
194 T(1, ui, unsigned int)
195 T(2, ui, unsigned int)
196 T(3, ui, unsigned int)
197 T(4, ui, unsigned int)
198 T(5, ui, unsigned int)
199 T(6, ui, unsigned int)
200 T(7, ui, unsigned int)
201 T(8, ui, unsigned int)
202 T(9, ui, unsigned int)
203 T(10, ui, unsigned int)
204 T(11, ui, unsigned int)
205 T(12, ui, unsigned int)
206 T(13, ui, unsigned int)
207 T(14, ui, unsigned int)
208 T(15, ui, unsigned int)