/* { dg-do run } */ /* { dg-options "-O3" } */ extern void abort (void); #include "stdint.h" #include "vect-ld1r.x" DEF (int8_t) DEF (int16_t) DEF (int32_t) DEF (int64_t) #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 int main (void) { DECL(int8_t); DECL(int16_t); DECL(int32_t); DECL(int64_t); int i; FOOD (int8_t); CHECKD (int8_t); FOOQ (int8_t); CHECKQ (int8_t); FOOD (int16_t); CHECKD (int16_t); FOOQ (int16_t); CHECKQ (int16_t); FOOD (int32_t); CHECKD (int32_t); FOOQ (int32_t); CHECKQ (int32_t); FOOD (int64_t); CHECKD (int64_t); FOOQ (int64_t); CHECKQ (int64_t); return 0; }