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)
161 #define T(N, NAME, TYPE) testit##NAME##N ();
163 T(0, uc
, unsigned char)
164 T(1, uc
, unsigned char)
165 T(2, uc
, unsigned char)
166 T(3, uc
, unsigned char)
167 T(4, uc
, unsigned char)
168 T(5, uc
, unsigned char)
169 T(6, uc
, unsigned char)
170 T(7, uc
, unsigned char)
171 T(8, uc
, unsigned char)
172 T(9, uc
, unsigned char)
173 T(10, uc
, unsigned char)
174 T(11, uc
, unsigned char)
175 T(12, uc
, unsigned char)
176 T(13, uc
, unsigned char)
177 T(14, uc
, unsigned char)
178 T(15, uc
, unsigned char)
179 T(0, us
, unsigned short)
180 T(1, us
, unsigned short)
181 T(2, us
, unsigned short)
182 T(3, us
, unsigned short)
183 T(4, us
, unsigned short)
184 T(5, us
, unsigned short)
185 T(6, us
, unsigned short)
186 T(7, us
, unsigned short)
187 T(8, us
, unsigned short)
188 T(9, us
, unsigned short)
189 T(10, us
, unsigned short)
190 T(11, us
, unsigned short)
191 T(12, us
, unsigned short)
192 T(13, us
, unsigned short)
193 T(14, us
, unsigned short)
194 T(15, us
, unsigned short)
195 T(0, ui
, unsigned int)
196 T(1, ui
, unsigned int)
197 T(2, ui
, unsigned int)
198 T(3, ui
, unsigned int)
199 T(4, ui
, unsigned int)
200 T(5, ui
, unsigned int)
201 T(6, ui
, unsigned int)
202 T(7, ui
, unsigned int)
203 T(8, ui
, unsigned int)
204 T(9, ui
, unsigned int)
205 T(10, ui
, unsigned int)
206 T(11, ui
, unsigned int)
207 T(12, ui
, unsigned int)
208 T(13, ui
, unsigned int)
209 T(14, ui
, unsigned int)
210 T(15, ui
, unsigned int)