Skip to content

Commit 7428db1

Browse files
authored
Merge pull request #607 from xtensor-stack/fix/avx-build
Do not use _mm256_srai_epi32 under AVX, it's an AVX2 instruction
2 parents aeec9c8 + 0835572 commit 7428db1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

include/xsimd/arch/xsimd_avx.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ namespace xsimd {
215215
return _mm256_or_si256(
216216
_mm256_srli_epi64(self, other),
217217
_mm256_slli_epi64(
218-
_mm256_srai_epi32(_mm256_shuffle_epi32(self, _MM_SHUFFLE(3, 3, 1, 1)), 32),
218+
detail::fwd_to_sse([](__m128i s, int32_t o) { return _mm_srai_epi32(s, o); }, _mm256_shuffle_epi32(self, _MM_SHUFFLE(3, 3, 1, 1)), 32),
219219
64 - other));
220220
}
221221
default: assert(false && "unsupported arch/op combination"); return {};
@@ -422,7 +422,7 @@ namespace xsimd {
422422
__m256i tmp1 = detail::fwd_to_sse([](__m128i s, __m128i o) { return eq(batch<T, sse4_2>(s), batch<T, sse4_2>(o)); },self, other);
423423
__m256i tmp2 = _mm256_shuffle_epi32(tmp1, 0xB1);
424424
__m256i tmp3 = detail::fwd_to_sse([](__m128i s, __m128i o) { return bitwise_and(batch<T, sse4_2>(s), batch<T, sse4_2>(o)); }, tmp1, tmp2);
425-
__m256i tmp4 = _mm256_srai_epi32(tmp3, 31);
425+
__m256i tmp4 = detail::fwd_to_sse([](__m128i s, uint32_t o) { return _mm_srai_epi32(s, o); }, tmp3, 31);
426426
return _mm256_shuffle_epi32(tmp4, 0xF5);
427427
}
428428
default: assert(false && "unsupported arch/op combination"); return {};

0 commit comments

Comments
 (0)