aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-3.h
blob: 5d2f5c34b6a671ecf34a84cfe40f4af558eb6b4d (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
#include "p9-vec-length-3.h"

#define decl(TYPE)                                                             \
  TYPE a_##TYPE[N_##TYPE];                                                     \
  TYPE b_##TYPE[N_##TYPE];                                                     \
  TYPE c_##TYPE[N_##TYPE];

#define run(TYPE)                                                              \
  {                                                                            \
    unsigned int i = 0;                                                        \
    for (i = 0; i < N_##TYPE; i++)                                             \
      {                                                                        \
	a_##TYPE[i] = i * 2 + 1;                                               \
	b_##TYPE[i] = i % 2 - 2;                                               \
      }                                                                        \
    test##TYPE ();                                                             \
    for (i = 0; i < N_##TYPE; i++)                                             \
      {                                                                        \
	TYPE a1 = i * 2 + 1;                                                   \
	TYPE b1 = i % 2 - 2;                                                   \
	TYPE exp_c = a1 + b1;                                                  \
	if (c_##TYPE[i] != exp_c)                                              \
	  __builtin_abort ();                                                  \
      }                                                                        \
  }

TEST_ALL (decl)

int
main (void)
{
  TEST_ALL (run)
  return 0;
}