Skip to content

Commit

Permalink
Apply LIBHAT_UNLIKELY to some scanner returns
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeroMemes committed Aug 1, 2024
1 parent 1133b07 commit c4c645f
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
6 changes: 3 additions & 3 deletions include/libhat/Scanner.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,14 @@ namespace hat {
} else {
i = std::find(std::execution::unseq, i, scanEnd, firstByte);
}
if (i == scanEnd) {
if (i == scanEnd) LIBHAT_UNLIKELY {
break;
}
// Compare everything after the first byte
auto match = std::equal(signature.begin() + 1, signature.end(), i + 1, [](auto opt, auto byte) {
return !opt.has_value() || *opt == byte;
});
if (match) {
if (match) LIBHAT_UNLIKELY {
return i;
}
}
Expand All @@ -196,7 +196,7 @@ namespace hat {
auto match = std::equal(signature.begin() + 1, signature.end(), i + 1, [](auto opt, auto byte) {
return !opt.has_value() || *opt == byte;
});
if (match) {
if (match) LIBHAT_UNLIKELY {
return i;
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/arch/x86/AVX2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ namespace hat::detail {
}

begin = next_boundary_align<alignment>(begin);
if (begin >= end) {
if (begin >= end) LIBHAT_UNLIKELY {
return {};
}

Expand Down Expand Up @@ -73,14 +73,14 @@ namespace hat::detail {
const auto data = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(i + 1));
const auto cmpToSig = _mm256_cmpeq_epi8(signatureBytes, data);
const auto matched = _mm256_testc_si256(cmpToSig, signatureMask);
if (matched) {
if (matched) LIBHAT_UNLIKELY {
return i;
}
} else {
auto match = std::equal(signature.begin() + 1, signature.end(), i + 1, [](auto opt, auto byte) {
return !opt.has_value() || *opt == byte;
});
if (match) {
if (match) LIBHAT_UNLIKELY {
return i;
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/arch/x86/AVX512.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ namespace hat::detail {
}

begin = next_boundary_align<alignment>(begin);
if (begin >= end) {
if (begin >= end) LIBHAT_UNLIKELY {
return {};
}

Expand All @@ -68,14 +68,14 @@ namespace hat::detail {
if constexpr (veccmp) {
const auto data = _mm512_loadu_si512(i + 1);
const auto invalid = _mm512_mask_cmpneq_epi8_mask(signatureMask, signatureBytes, data);
if (!invalid) {
if (!invalid) LIBHAT_UNLIKELY {
return i;
}
} else {
auto match = std::equal(signature.begin() + 1, signature.end(), i + 1, [](auto opt, auto byte) {
return !opt.has_value() || *opt == byte;
});
if (match) {
if (match) LIBHAT_UNLIKELY {
return i;
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/arch/x86/SSE.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ namespace hat::detail {
}

begin = next_boundary_align<alignment>(begin);
if (begin >= end) {
if (begin >= end) LIBHAT_UNLIKELY {
return {};
}

Expand Down Expand Up @@ -71,14 +71,14 @@ namespace hat::detail {
const auto data = _mm_loadu_si128(reinterpret_cast<const __m128i*>(i + 1));
const auto cmpToSig = _mm_cmpeq_epi8(signatureBytes, data);
const auto matched = _mm_testc_si128(cmpToSig, signatureMask);
if (matched) {
if (matched) LIBHAT_UNLIKELY {
return i;
}
} else {
auto match = std::equal(signature.begin() + 1, signature.end(), i + 1, [](auto opt, auto byte) {
return !opt.has_value() || *opt == byte;
});
if (match) {
if (match) LIBHAT_UNLIKELY {
return i;
}
}
Expand Down

0 comments on commit c4c645f

Please sign in to comment.