diff --git a/src/arch/x86/AVX2.cpp b/src/arch/x86/AVX2.cpp index bf1082e..3f295ad 100644 --- a/src/arch/x86/AVX2.cpp +++ b/src/arch/x86/AVX2.cpp @@ -35,7 +35,10 @@ namespace hat::detail { secondByte = _mm256_set1_epi8(static_cast(*signature[1])); } - alignas(__m256i) const auto [signatureBytes, signatureMask] = load_signature_256(signature); + __m256i signatureBytes, signatureMask; + if constexpr (veccmp) { + std::tie(signatureBytes, signatureMask) = load_signature_256(signature); + } begin = next_boundary_align(begin); if (begin >= end) { diff --git a/src/arch/x86/AVX512.cpp b/src/arch/x86/AVX512.cpp index 97bb2c6..4211b86 100644 --- a/src/arch/x86/AVX512.cpp +++ b/src/arch/x86/AVX512.cpp @@ -35,7 +35,11 @@ namespace hat::detail { secondByte = _mm512_set1_epi8(static_cast(*signature[1])); } - alignas(__m512i) const auto [signatureBytes, signatureMask] = load_signature_512(signature); + __m512i signatureBytes; + uint64_t signatureMask; + if constexpr (veccmp) { + std::tie(signatureBytes, signatureMask) = load_signature_512(signature); + } begin = next_boundary_align(begin); if (begin >= end) { diff --git a/src/arch/x86/SSE.cpp b/src/arch/x86/SSE.cpp index 060c0f1..a3b26a9 100644 --- a/src/arch/x86/SSE.cpp +++ b/src/arch/x86/SSE.cpp @@ -35,7 +35,10 @@ namespace hat::detail { secondByte = _mm_set1_epi8(static_cast(*signature[1])); } - alignas(__m128i) const auto [signatureBytes, signatureMask] = load_signature_128(signature); + __m128i signatureBytes, signatureMask; + if constexpr (veccmp) { + std::tie(signatureBytes, signatureMask) = load_signature_128(signature); + } begin = next_boundary_align(begin); if (begin >= end) {