@@ -362,11 +362,11 @@ namespace xsimd
362362 {
363363 XSIMD_IF_CONSTEXPR (sizeof (T) == 1 )
364364 {
365- return _mm512_mask_blend_epi8 (cond, false_br, true_br);
365+ return _mm512_mask_blend_epi8 (cond, false_br. data , true_br. data );
366366 }
367367 else XSIMD_IF_CONSTEXPR (sizeof (T) == 2 )
368368 {
369- return _mm512_mask_blend_epi16 (cond, false_br, true_br);
369+ return _mm512_mask_blend_epi16 (cond, false_br. data , true_br. data );
370370 }
371371 else
372372 {
@@ -410,14 +410,14 @@ namespace xsimd
410410 batch<T, A> xx;
411411 if (N & 1 )
412412 {
413- alignas (32 ) uint64_t buffer[8 ];
413+ alignas (A::alignment () ) uint64_t buffer[8 ];
414414 _mm512_store_epi64 (&buffer[0 ], x);
415415 for (int i = 7 ; i > 0 ; --i)
416416 buffer[i] = (buffer[i] << 8 ) | (buffer[i - 1 ] >> 56 );
417417 buffer[0 ] = buffer[0 ] << 8 ;
418418 xx = _mm512_load_epi64 (&buffer[0 ]);
419419
420- alignas (32 ) auto slide_perm = detail::make_slide_perm_hi (::xsimd::detail::make_index_sequence<512 / 64 >());
420+ alignas (A::alignment () ) auto slide_perm = detail::make_slide_perm_hi (::xsimd::detail::make_index_sequence<512 / 64 >());
421421 __m512i xl = _mm512_slli_epi64 (x, 8 );
422422 __m512i xr = _mm512_srli_epi64 (x, 56 );
423423 xr = _mm512_permutex2var_epi64 (xr, _mm512_load_epi64 (slide_perm.data ()), _mm512_setzero_si512 ());
@@ -429,8 +429,8 @@ namespace xsimd
429429 {
430430 xx = x;
431431 }
432- alignas (32 ) auto slide_pattern = detail::make_slide_left_pattern<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
433- alignas (32 ) auto slide_mask = detail::make_slide_left_mask<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
432+ alignas (A::alignment () ) auto slide_pattern = detail::make_slide_left_pattern<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
433+ alignas (A::alignment () ) auto slide_mask = detail::make_slide_left_mask<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
434434 return _mm512_and_si512 (_mm512_permutexvar_epi16 (_mm512_load_epi32 (slide_pattern.data ()), xx), _mm512_load_epi32 (slide_mask.data ()));
435435 }
436436
@@ -469,7 +469,7 @@ namespace xsimd
469469 batch<T, A> xx;
470470 if (N & 1 )
471471 {
472- alignas (32 ) auto slide_perm = detail::make_slide_perm_low (::xsimd::detail::make_index_sequence<512 / 64 >());
472+ alignas (A::alignment () ) auto slide_perm = detail::make_slide_perm_low (::xsimd::detail::make_index_sequence<512 / 64 >());
473473 __m512i xr = _mm512_srli_epi64 (x, 8 );
474474 __m512i xl = _mm512_slli_epi64 (x, 56 );
475475 xl = _mm512_permutex2var_epi64 (xl, _mm512_load_epi64 (slide_perm.data ()), _mm512_setzero_si512 ());
@@ -481,8 +481,8 @@ namespace xsimd
481481 {
482482 xx = x;
483483 }
484- alignas (32 ) auto slide_pattern = detail::make_slide_right_pattern<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
485- alignas (32 ) auto slide_mask = detail::make_slide_right_mask<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
484+ alignas (A::alignment () ) auto slide_pattern = detail::make_slide_right_pattern<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
485+ alignas (A::alignment () ) auto slide_mask = detail::make_slide_right_mask<N / 2 >(::xsimd::detail::make_index_sequence<512 / 16 >());
486486 return _mm512_and_si512 (_mm512_permutexvar_epi16 (_mm512_load_epi32 (slide_pattern.data ()), xx), _mm512_load_epi32 (slide_mask.data ()));
487487 }
488488
0 commit comments