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 }