aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/pr79251.h
blob: 2684b66096634775e352cfa1098742a085c301bb (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

#define test(TYPE, num)                                                        \
  __attribute__ ((noinline, noclone))                                          \
    vector TYPE test##num (vector TYPE v, TYPE i, signed int n)                \
  {                                                                            \
    return vec_insert (i, v, n);                                               \
  }

#define TEST_VEC_INSERT_ALL(T)                                                 \
  T (char, 0)                                                                  \
  T (unsigned char, 1)                                                         \
  T (short, 2)                                                                 \
  T (unsigned short, 3)                                                        \
  T (int, 4)                                                                   \
  T (unsigned int, 5)                                                          \
  T (long long, 6)                                                             \
  T (unsigned long long, 7)                                                    \
  T (float, 8)                                                                 \
  T (double, 9)

TEST_VEC_INSERT_ALL (test)

#define run_test(TYPE, num)                                                    \
  {                                                                            \
    vector TYPE v;                                                             \
    vector TYPE u = {0x0};                                                     \
    for (long k = 0; k < 16 / sizeof (TYPE); k++)                              \
      v[k] = 0xaa;                                                             \
    for (long k = 0; k < 16 / sizeof (TYPE); k++)                              \
      {                                                                        \
	u = test##num (v, 254, k);                                             \
	if (u[k] != (TYPE) 254)                                                \
	  __builtin_abort ();                                                  \
      }                                                                        \
  }