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 (int8_t) DEF(int16_t)10DEF (int16_t) 11 DEF (int32_t) 12 DEF (int64_t) 13 14 #define FOOD(TYPE) \ 15 foo_ ## TYPE ## _d (&a_ ## TYPE, output_ ## TYPE) 16 17 #define FOOQ(TYPE) \ 18 foo_ ## TYPE ## _q (&a_ ## TYPE, output_ ## TYPE) 19 20 #define CHECKD(TYPE) \ 21 for (i = 0; i < 8 / sizeof (TYPE); i++) \ 22 if (output_ ## TYPE[i] != a_ ## TYPE) \ 23 abort () 24 25 #define CHECKQ(TYPE) \ 26 for (i = 0; i < 32 / sizeof (TYPE); i++) \ 27 if (output_ ## TYPE[i] != a_ ## TYPE) \ 28 abort () 29 30 #define DECL(TYPE) \ 31 TYPE output_ ## TYPE[32]; \ 32 TYPE a_ ## TYPE = (TYPE)12 33 34 int 35 main (void) 36 { 37 38 DECL(int8_t); 39 DECL(int16_t); 40 DECL(int32_t); 41 DECL(int64_t); 42 int i; 43 44 FOOD (int8_t); 45 CHECKD (int8_t); 46 FOOQ (int8_t); 47 CHECKQ (int8_t); 48 49 FOOD (int16_t); 50 CHECKD (int16_t); 51 FOOQ (int16_t); 52 CHECKQ (int16_t); 53 54 FOOD (int32_t); 55 CHECKD (int32_t); 56 FOOQ (int32_t); 57 CHECKQ (int32_t); 58 59 FOOD (int64_t); 60 CHECKD (int64_t); 61 FOOQ (int64_t); 62 CHECKQ (int64_t); 63 64 return 0; 65 } 66