1 /* { dg-do run } */ 2 /* { dg-options "-O3" } */ 3 4 extern void abort (void); 5 6 #include "stdint.h" 7 #include "vect-ld1r.x" 8 9 DEF (float) DEF(double)10DEF (double) 11 12 #define FOOD(TYPE) \ 13 foo_ ## TYPE ## _d (&a_ ## TYPE, output_ ## TYPE) 14 15 #define FOOQ(TYPE) \ 16 foo_ ## TYPE ## _q (&a_ ## TYPE, output_ ## TYPE) 17 18 #define CHECKD(TYPE) \ 19 for (i = 0; i < 8 / sizeof (TYPE); i++) \ 20 if (output_ ## TYPE[i] != a_ ## TYPE) \ 21 abort () 22 23 #define CHECKQ(TYPE) \ 24 for (i = 0; i < 32 / sizeof (TYPE); i++) \ 25 if (output_ ## TYPE[i] != a_ ## TYPE) \ 26 abort () 27 28 #define DECL(TYPE) \ 29 TYPE output_ ## TYPE[32]; \ 30 TYPE a_ ## TYPE = (TYPE)12.2 31 32 int 33 main (void) 34 { 35 36 DECL(float); 37 DECL(double); 38 int i; 39 40 FOOD (float); 41 CHECKD (float); 42 FOOQ (float); 43 CHECKQ (float); 44 45 FOOD (double); 46 CHECKD (double); 47 FOOQ (double); 48 CHECKQ (double); 49 50 return 0; 51 } 52