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 |
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 } |