46 lines
2.5 KiB
C
46 lines
2.5 KiB
C
#include "p9-vec-length-5.h"
|
|
|
|
/* Check more to ensure vector access with out of bound. */
|
|
#define N 155
|
|
/* Array size used for test function actually. */
|
|
#define NF 127
|
|
|
|
#define run(TYPE1, TYPE2) \
|
|
{ \
|
|
unsigned int i = 0; \
|
|
TYPE1 a[N * 2]; \
|
|
TYPE2 b[N * 2]; \
|
|
for (i = 0; i < N; i++) \
|
|
{ \
|
|
a[i * 2] = i * 2 + i % 3; \
|
|
a[i * 2 + 1] = i * 3 + i % 4; \
|
|
b[i * 2] = i * 7 + i / 5; \
|
|
b[i * 2 + 1] = i * 8 + i / 6; \
|
|
} \
|
|
test_mv_##TYPE1##TYPE2 (a, b, NF); \
|
|
for (i = 0; i < N; i++) \
|
|
{ \
|
|
TYPE1 exp_a1 = i * 2 + i % 3; \
|
|
TYPE1 exp_a2 = i * 3 + i % 4; \
|
|
TYPE2 exp_b1 = i * 7 + i / 5; \
|
|
TYPE2 exp_b2 = i * 8 + i / 6; \
|
|
if (i < NF) \
|
|
{ \
|
|
exp_a1 += 1; \
|
|
exp_a2 += 2; \
|
|
exp_b1 += 3; \
|
|
exp_b2 += 4; \
|
|
} \
|
|
if (a[i * 2] != exp_a1 || a[i * 2 + 1] != exp_a2 || b[i * 2] != exp_b1 \
|
|
|| b[i * 2 + 1] != exp_b2) \
|
|
__builtin_abort (); \
|
|
} \
|
|
}
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
TEST_ALL2 (run)
|
|
return 0;
|
|
}
|