/* { dg-do run } */ /* { dg-options "-O3" } */ extern void abort (void); #include "stdint.h" #include "vect-ld1r.x" DEF (float) DEF (double) #define FOOD(TYPE) \ foo_ ## TYPE ## _d (&a_ ## TYPE, output_ ## TYPE) #define FOOQ(TYPE) \ foo_ ## TYPE ## _q (&a_ ## TYPE, output_ ## TYPE) #define CHECKD(TYPE) \ for (i = 0; i < 8 / sizeof (TYPE); i++) \ if (output_ ## TYPE[i] != a_ ## TYPE) \ abort () #define CHECKQ(TYPE) \ for (i = 0; i < 32 / sizeof (TYPE); i++) \ if (output_ ## TYPE[i] != a_ ## TYPE) \ abort () #define DECL(TYPE) \ TYPE output_ ## TYPE[32]; \ TYPE a_ ## TYPE = (TYPE)12.2 int main (void) { DECL(float); DECL(double); int i; FOOD (float); CHECKD (float); FOOQ (float); CHECKQ (float); FOOD (double); CHECKD (double); FOOQ (double); CHECKQ (double); return 0; }