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)10 DEF (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