@@ -1423,7 +1423,7 @@ namespace xsimd
14231423 inline T reduce_max (batch<T, A> const & self, requires_arch<avx512f>) noexcept
14241424 {
14251425 constexpr batch_constant<uint64_t , A, 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 > mask;
1426- batch<T, A> step = _mm512_permutexvar_epi64 ((batch< uint64_t , A>)mask , self);
1426+ batch<T, A> step = _mm512_permutexvar_epi64 (mask. as_batch () , self);
14271427 batch<T, A> acc = max (self, step);
14281428 __m256i low = _mm512_castsi512_si256 (acc);
14291429 return reduce_max (batch<T, avx2>(low));
@@ -1434,7 +1434,7 @@ namespace xsimd
14341434 inline T reduce_min (batch<T, A> const & self, requires_arch<avx512f>) noexcept
14351435 {
14361436 constexpr batch_constant<uint64_t , A, 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 > mask;
1437- batch<T, A> step = _mm512_permutexvar_epi64 ((batch< uint64_t , A>)mask , self);
1437+ batch<T, A> step = _mm512_permutexvar_epi64 (mask. as_batch () , self);
14381438 batch<T, A> acc = min (self, step);
14391439 __m256i low = _mm512_castsi512_si256 (acc);
14401440 return reduce_min (batch<T, avx2>(low));
@@ -1919,37 +1919,37 @@ namespace xsimd
19191919 template <class A , uint32_t ... Vs>
19201920 inline batch<float , A> swizzle (batch<float , A> const & self, batch_constant<uint32_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19211921 {
1922- return swizzle (self, (batch< uint32_t , A>)mask , avx512f {});
1922+ return swizzle (self, mask. as_batch () , avx512f {});
19231923 }
19241924
19251925 template <class A , uint64_t ... Vs>
19261926 inline batch<double , A> swizzle (batch<double , A> const & self, batch_constant<uint64_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19271927 {
1928- return swizzle (self, (batch< uint64_t , A>)mask , avx512f {});
1928+ return swizzle (self, mask. as_batch () , avx512f {});
19291929 }
19301930
19311931 template <class A , uint64_t ... Vs>
19321932 inline batch<uint64_t , A> swizzle (batch<uint64_t , A> const & self, batch_constant<uint64_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19331933 {
1934- return swizzle (self, (batch< uint64_t , A>)mask , avx512f {});
1934+ return swizzle (self, mask. as_batch () , avx512f {});
19351935 }
19361936
19371937 template <class A , uint64_t ... Vs>
19381938 inline batch<int64_t , A> swizzle (batch<int64_t , A> const & self, batch_constant<uint64_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19391939 {
1940- return swizzle (self, (batch< uint64_t , A>)mask , avx512f {});
1940+ return swizzle (self, mask. as_batch () , avx512f {});
19411941 }
19421942
19431943 template <class A , uint32_t ... Vs>
19441944 inline batch<uint32_t , A> swizzle (batch<uint32_t , A> const & self, batch_constant<uint32_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19451945 {
1946- return swizzle (self, (batch< uint32_t , A>)mask , avx512f {});
1946+ return swizzle (self, mask. as_batch () , avx512f {});
19471947 }
19481948
19491949 template <class A , uint32_t ... Vs>
19501950 inline batch<int32_t , A> swizzle (batch<int32_t , A> const & self, batch_constant<uint32_t , A, Vs...> mask, requires_arch<avx512f>) noexcept
19511951 {
1952- return swizzle (self, (batch< uint32_t , A>)mask , avx512f {});
1952+ return swizzle (self, mask. as_batch () , avx512f {});
19531953 }
19541954
19551955 namespace detail
0 commit comments