#define DEF(TYPE) \ void \ foo_ ## TYPE ## _d (TYPE *a, TYPE *output) \ { \ int i; \ for (i = 0; i < 8 / sizeof (TYPE); i++) \ output[i] = *a; \ } \ foo_ ## TYPE ## _q (TYPE *a, TYPE *output) \ { \ int i; \ for (i = 0; i < 32 / sizeof (TYPE); i++) \ output[i] = *a; \ }