1 #if DEBUG
2 #include <stdio.h>
3 #define DBG(x) fputs (x, stdout); fflush (stdout);
4 #else
5 #define DBG(x)
6 #endif
7 
8 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
9 extern void NAME##_f0 (TYPE a, PADT b);					\
10 extern void NAME##_f1 (PADT z0, TYPE a, PADT b);			\
11 extern void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b);		\
12 extern void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b);	\
13 extern void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a,	\
14 		       PADT b);						\
15 extern void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4,	\
16 		       TYPE a, PADT b);					\
17 extern void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4,	\
18 		       PADT z5, TYPE a, PADT b);			\
19 extern void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4,	\
20 		       PADT z5, PADT z6, TYPE a, PADT b);		\
21 extern void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4,	\
22 		       PADT z5, PADT z6, PADT z7, TYPE a, PADT b);	\
23 extern void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4,	\
24 		       PADT z5, PADT z6, PADT z7, PADT z8, TYPE a,	\
25 		       PADT b);						\
26 extern void NAME##_fv (int n, ...);					\
27 									\
28 void NAME##_doit (void)							\
29 {									\
30   NAME##_f0 (VAL, VAL2);						\
31   DBG (".");								\
32   NAME##_f1 ((PADT) 0, VAL, VAL2);					\
33   DBG (".");								\
34   NAME##_f2 ((PADT) 0, (PADT) 0, VAL, VAL2);				\
35   DBG (".");								\
36   NAME##_f3 ((PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);			\
37   DBG (".");								\
38   NAME##_f4 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);	\
39   DBG (".");								\
40   NAME##_f5 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,		\
41 	     VAL, VAL2);						\
42   DBG (".");								\
43   NAME##_f6 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,		\
44 	     (PADT) 0, VAL, VAL2);					\
45   DBG (".");								\
46   NAME##_f7 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,		\
47 	     (PADT) 0, (PADT) 0, VAL, VAL2);				\
48   DBG (".");								\
49   NAME##_f8 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,		\
50 	     (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);			\
51   DBG (".");								\
52   NAME##_f9 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,		\
53 	     (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);	\
54   DBG (".");								\
55   NAME##_fv (0, VAL, VAL2);						\
56   DBG (".");								\
57   NAME##_fv (1, (PADT) 0, VAL, VAL2);					\
58   DBG (".");								\
59   NAME##_fv (2, (PADT) 0, (PADT) 0, VAL, VAL2);				\
60   DBG (".");								\
61   NAME##_fv (3, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);		\
62   DBG (".");								\
63   NAME##_fv (4, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);	\
64   DBG (".");								\
65   NAME##_fv (5, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,	\
66 	     VAL, VAL2);						\
67   DBG (".");								\
68   NAME##_fv (6, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,	\
69 	     (PADT) 0, VAL, VAL2);					\
70   DBG (".");								\
71   NAME##_fv (7, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,	\
72 	     (PADT) 0, (PADT) 0, VAL, VAL2);				\
73   DBG (".");								\
74   NAME##_fv (8, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0,	\
75 	     (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2);			\
76   DBG ("\n");								\
77 }
78