c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / p9-vec-length-run-6.h
blob814e4059bdf5d87420a5260e668ce0ba0fa355d8
1 #include "p9-vec-length-6.h"
3 /* Check more to ensure vector access with out of bound. */
4 #define N 275
5 /* Array size used for test function actually. */
6 #define NF 255
8 #define run(TYPE1, TYPE2) \
9 { \
10 unsigned int i = 0; \
11 TYPE1 a[N * 2]; \
12 TYPE2 b[N * 4]; \
13 for (i = 0; i < N; i++) \
14 { \
15 a[i * 2] = i * 2 + i % 3; \
16 a[i * 2 + 1] = i * 3 + i % 4; \
17 b[i * 4] = i * 4 + i / 5; \
18 b[i * 4 + 1] = i * 5 + i / 6; \
19 b[i * 4 + 2] = i * 6 + i / 7; \
20 b[i * 4 + 3] = i * 7 + i / 8; \
21 } \
22 test_mv_##TYPE1##TYPE2 (a, b, NF); \
23 for (i = 0; i < N; i++) \
24 { \
25 TYPE1 exp_a1 = i * 2 + i % 3; \
26 TYPE1 exp_a2 = i * 3 + i % 4; \
27 TYPE2 exp_b1 = i * 4 + i / 5; \
28 TYPE2 exp_b2 = i * 5 + i / 6; \
29 TYPE2 exp_b3 = i * 6 + i / 7; \
30 TYPE2 exp_b4 = i * 7 + i / 8; \
31 if (i < NF) \
32 { \
33 exp_a1 += 1; \
34 exp_a2 += 2; \
35 exp_b1 += 3; \
36 exp_b2 += 4; \
37 exp_b3 += 5; \
38 exp_b4 += 6; \
39 } \
40 if (a[i * 2] != exp_a1 || a[i * 2 + 1] != exp_a2 || b[i * 4] != exp_b1 \
41 || b[i * 4 + 1] != exp_b2 || b[i * 4 + 2] != exp_b3 \
42 || b[i * 4 + 3] != exp_b4) \
43 __builtin_abort (); \
44 } \
47 int
48 main (void)
50 TEST_ALL2 (run)
51 return 0;