@@ -102,15 +102,18 @@ void test_logical(void) {
102102 Ret_M256i_M256i (__m256i, _mm256_xor_si256);
103103}
104104
105- void test_swizzle (void ) {
105+ // Split test_swizzle to reduce memory consumption
106+ void test_swizzle1 (void ) {
106107 Ret_M256i_M256i_M256i (__m256i, _mm256_blendv_epi8);
107108 Ret_M256i_M256i_Tint (__m256i, _mm256_blend_epi16);
108109
109110 Ret_M256i_M256i (__m256i, _mm256_shuffle_epi8);
110111 Ret_M256i_Tint (__m256i, _mm256_shuffle_epi32);
111112 Ret_M256i_Tint (__m256i, _mm256_shufflehi_epi16);
112113 Ret_M256i_Tint (__m256i, _mm256_shufflelo_epi16);
114+ }
113115
116+ void test_swizzle2 (void ) {
114117 Ret_M256i_M256i (__m256i, _mm256_unpackhi_epi8);
115118 Ret_M256i_M256i (__m256i, _mm256_unpackhi_epi16);
116119 Ret_M256i_M256i (__m256i, _mm256_unpackhi_epi32);
@@ -143,13 +146,22 @@ void test_swizzle(void) {
143146 Ret_M256i_M256i (__m256i, _mm256_permutevar8x32_epi32);
144147 Ret_M256_M256i (__m256, _mm256_permutevar8x32_ps);
145148 Ret_M256i_Tint (__m256i, _mm256_permute4x64_epi64);
149+ }
150+
151+ void test_swizzle3 (void ) {
146152 Ret_M256d_Tint (__m256d, _mm256_permute4x64_pd);
147153 Ret_M256i_M256i_Tint (__m256i, _mm256_permute2x128_si256);
148154
149155 Ret_M256i_Tint (__m128i, _mm256_extracti128_si256);
150156 Ret_M256i_M128i_Tint (__m256i, _mm256_inserti128_si256);
151157}
152158
159+ void test_swizzle (void ) {
160+ test_swizzle1 ();
161+ test_swizzle2 ();
162+ test_swizzle3 ();
163+ }
164+
153165void test_convert (void ) {
154166 Ret_M128i (__m256i, _mm256_cvtepi8_epi16);
155167 Ret_M128i (__m256i, _mm256_cvtepi8_epi32);
@@ -191,7 +203,8 @@ void test_misc(void) {
191203 Ret_M256i (int , _mm256_movemask_epi8);
192204}
193205
194- void test_load (void ) {
206+ // Split test_load to reduce memory consumption
207+ void test_load1 (void ) {
195208 Ret_IntPtr (__m256i, _mm256_stream_load_si256, __m256i*, 8 , 8 );
196209
197210 Ret_IntPtr_M128i (__m128i, _mm_maskload_epi32, int32_t *, 4 , 4 );
@@ -228,7 +241,9 @@ void test_load(void) {
228241 __m128i, _mm_mask_i64gather_epi64, 8 );
229242 Ret_M256i_Int64Ptr_I64x4_M256i_Tint_body (
230243 __m256i, _mm256_mask_i64gather_epi64, 8 );
244+ }
231245
246+ void test_load2 (void ) {
232247 Ret_DoublePtr_I32x4_Tint_body (__m128d, _mm_i32gather_pd, 8 );
233248 Ret_DoublePtr_I32x4_Tint_body (__m256d, _mm256_i32gather_pd, 8 );
234249 Ret_DoublePtr_I64x2_Tint_body (__m128d, _mm_i64gather_pd, 8 );
@@ -250,6 +265,11 @@ void test_load(void) {
250265 Ret_Int64Ptr_I64x4_Tint_body (__m256i, _mm256_i64gather_epi64, 8 );
251266}
252267
268+ void test_load (void ) {
269+ test_load1 ();
270+ test_load2 ();
271+ }
272+
253273void test_store (void ) {
254274 void_OutIntPtr_M128i_M128i (_mm_maskstore_epi32, int *, 16 , 4 );
255275 void_OutIntPtr_M256i_M256i (_mm256_maskstore_epi32, int *, 32 , 4 );
@@ -262,13 +282,16 @@ void test_statisticsa(void) {
262282 Ret_M256i_M256i (__m256i, _mm256_avg_epu8);
263283}
264284
265- // Split test_shift into two functions to reduce memory consumption
285+ // Split test_shift to reduce memory consumption
266286void test_shift1 (void ) {
267287 Ret_M256i_Tint (__m256i, _mm256_slli_si256);
268288 Ret_M256i_Tint (__m256i, _mm256_bslli_epi128);
269289
270290 Ret_M256i_Tint (__m256i, _mm256_slli_epi16);
271291 Ret_M256i_Tint (__m256i, _mm256_slli_epi32);
292+ }
293+
294+ void test_shift2 (void ) {
272295 Ret_M256i_Tint (__m256i, _mm256_slli_epi64);
273296 Ret_M256i_M128i (__m256i, _mm256_sll_epi16);
274297 Ret_M256i_M128i (__m256i, _mm256_sll_epi32);
@@ -278,10 +301,11 @@ void test_shift1(void) {
278301 Ret_M256i_Tint (__m256i, _mm256_srai_epi32);
279302 Ret_M256i_M128i (__m256i, _mm256_sra_epi16);
280303 Ret_M256i_M128i (__m256i, _mm256_sra_epi32);
281- }
282304
283- void test_shift2 (void ) {
284305 Ret_M256i_Tint (__m256i, _mm256_srli_si256);
306+ }
307+
308+ void test_shift3 (void ) {
285309 Ret_M256i_Tint (__m256i, _mm256_bsrli_epi128);
286310
287311 Ret_M256i_Tint (__m256i, _mm256_srli_epi16);
@@ -308,6 +332,7 @@ void test_shift2(void) {
308332void test_shift (void ) {
309333 test_shift1 ();
310334 test_shift2 ();
335+ test_shift3 ();
311336}
312337
313338int main () {
0 commit comments