aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/aarch64/vect-ld1r-fp.c
blob: 5e384e1bb40d0e19d89cf1018793e9b64f774523 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* { dg-do run } */
/* { dg-options "-O3" } */

extern void abort (void);

#include "stdint.h"
#include "vect-ld1r.x"

DEF (float)
DEF (double)

#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.2

int
main (void)
{

  DECL(float);
  DECL(double);
  int i;

  FOOD (float);
  CHECKD (float);
  FOOQ (float);
  CHECKQ (float);

  FOOD (double);
  CHECKD (double);
  FOOQ (double);
  CHECKQ (double);

  return 0;
}