Mercurial > vec
comparison test/test_align.h @ 29:e59c91d050c0
*: add aligned malloc stuff :)
author | Paper <paper@tflc.us> |
---|---|
date | Thu, 24 Apr 2025 17:12:05 -0400 |
parents | 41dd962abdd1 |
children | 641d8c79b1da |
comparison
equal
deleted
inserted
replaced
28:c6c99ab1088a | 29:e59c91d050c0 |
---|---|
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; | |
4 | 5 |
5 #define RUN_TEST(sign, csign, bits, size) \ | 6 #define RUN_TEST(sign, csign, bits, size) \ |
6 do { \ | 7 do { \ |
7 /* allocate the aligned array */ \ | 8 /* allocate the aligned array */ \ |
8 V##csign##INT##bits##x##size##_ALIGNED_ARRAY(vec_arr); \ | 9 V##csign##INT##bits##x##size##_ALIGNED_ARRAY(vec_arr); \ |
9 \ | 10 \ |
10 /* fill the values */ \ | 11 /* fill the values */ \ |
11 for (int i = 0; i < size; i++) \ | 12 for (i = 0; i < size; i++) \ |
12 vec_arr[i] = i; \ | 13 vec_arr[i] = i; \ |
13 \ | 14 \ |
14 /* try to load it */ \ | 15 /* try to load it */ \ |
15 v##sign##int##bits##x##size vec = v##sign##int##bits##x##size##_load_aligned(vec_arr); \ | 16 v##sign##int##bits##x##size vec = v##sign##int##bits##x##size##_load_aligned(vec_arr); \ |
16 \ | 17 \ |
56 RUN_TESTS(64, 8) | 57 RUN_TESTS(64, 8) |
57 | 58 |
58 #undef RUN_TESTS | 59 #undef RUN_TESTS |
59 #undef RUN_TEST | 60 #undef RUN_TEST |
60 | 61 |
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 | |
61 return ret; | 80 return ret; |
62 } | 81 } |