| |
| #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 (); \ |
| } \ |
| } |
| |