2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / vect-ld1r.c
blobf0571de9f05597d6669368f847be1830223a5036
1 /* { dg-do run } */
2 /* { dg-options "-O3" } */
4 extern void abort (void);
6 #include "stdint.h"
7 #include "vect-ld1r.x"
9 DEF (int8_t)
10 DEF (int16_t)
11 DEF (int32_t)
12 DEF (int64_t)
14 #define FOOD(TYPE) \
15 foo_ ## TYPE ## _d (&a_ ## TYPE, output_ ## TYPE)
17 #define FOOQ(TYPE) \
18 foo_ ## TYPE ## _q (&a_ ## TYPE, output_ ## TYPE)
20 #define CHECKD(TYPE) \
21 for (i = 0; i < 8 / sizeof (TYPE); i++) \
22 if (output_ ## TYPE[i] != a_ ## TYPE) \
23 abort ()
25 #define CHECKQ(TYPE) \
26 for (i = 0; i < 32 / sizeof (TYPE); i++) \
27 if (output_ ## TYPE[i] != a_ ## TYPE) \
28 abort ()
30 #define DECL(TYPE) \
31 TYPE output_ ## TYPE[32]; \
32 TYPE a_ ## TYPE = (TYPE)12
34 int
35 main (void)
38 DECL(int8_t);
39 DECL(int16_t);
40 DECL(int32_t);
41 DECL(int64_t);
42 int i;
44 FOOD (int8_t);
45 CHECKD (int8_t);
46 FOOQ (int8_t);
47 CHECKQ (int8_t);
49 FOOD (int16_t);
50 CHECKD (int16_t);
51 FOOQ (int16_t);
52 CHECKQ (int16_t);
54 FOOD (int32_t);
55 CHECKD (int32_t);
56 FOOQ (int32_t);
57 CHECKQ (int32_t);
59 FOOD (int64_t);
60 CHECKD (int64_t);
61 FOOQ (int64_t);
62 CHECKQ (int64_t);
64 return 0;