Mercurial > vec
comparison test/test_align.h @ 30:641d8c79b1da
Backed out changeset e59c91d050c0
| author | Paper <paper@tflc.us> |
|---|---|
| date | Fri, 25 Apr 2025 17:40:30 -0400 |
| parents | e59c91d050c0 |
| children | 7955bed1d169 |
comparison
equal
deleted
inserted
replaced
| 29:e59c91d050c0 | 30:641d8c79b1da |
|---|---|
| 1 static int test_align(void) | 1 static int test_align(void) |
| 2 { | 2 { |
| 3 int ret = 0; | 3 int ret = 0; |
| 4 int i; | |
| 5 | 4 |
| 6 #define RUN_TEST(sign, csign, bits, size) \ | 5 #define RUN_TEST(sign, csign, bits, size) \ |
| 7 do { \ | 6 do { \ |
| 8 /* allocate the aligned array */ \ | 7 /* allocate the aligned array */ \ |
| 9 V##csign##INT##bits##x##size##_ALIGNED_ARRAY(vec_arr); \ | 8 V##csign##INT##bits##x##size##_ALIGNED_ARRAY(vec_arr); \ |
| 10 \ | 9 \ |
| 11 /* fill the values */ \ | 10 /* fill the values */ \ |
| 12 for (i = 0; i < size; i++) \ | 11 for (int i = 0; i < size; i++) \ |
| 13 vec_arr[i] = i; \ | 12 vec_arr[i] = i; \ |
| 14 \ | 13 \ |
| 15 /* try to load it */ \ | 14 /* try to load it */ \ |
| 16 v##sign##int##bits##x##size vec = v##sign##int##bits##x##size##_load_aligned(vec_arr); \ | 15 v##sign##int##bits##x##size vec = v##sign##int##bits##x##size##_load_aligned(vec_arr); \ |
| 17 \ | 16 \ |
| 57 RUN_TESTS(64, 8) | 56 RUN_TESTS(64, 8) |
| 58 | 57 |
| 59 #undef RUN_TESTS | 58 #undef RUN_TESTS |
| 60 #undef RUN_TEST | 59 #undef RUN_TEST |
| 61 | 60 |
| 62 for (i = 0; i < 50; i++) { | |
| 63 void *q = vec_malloc(i); | |
| 64 | |
| 65 ret |= !!((uintptr_t)q & 63); | |
| 66 | |
| 67 /* try a bigger size */ | |
| 68 q = vec_realloc(q, i + 10); | |
| 69 | |
| 70 ret |= !!((uintptr_t)q & 63); | |
| 71 | |
| 72 /* now a smaller one */ | |
| 73 q = vec_realloc(q, i - 10); | |
| 74 | |
| 75 ret |= !!((uintptr_t)q & 63); | |
| 76 | |
| 77 vec_free(q); | |
| 78 } | |
| 79 | |
| 80 return ret; | 61 return ret; |
| 81 } | 62 } |
