github-actions[bot] commented on code in PR #65738:
URL: https://github.com/apache/doris/pull/65738#discussion_r3600320897
##########
be/src/util/bit_packing.inline.h:
##########
@@ -83,8 +86,24 @@ std::pair<const uint8_t*, int64_t>
BitPacking::UnpackValues(const uint8_t* __res
const uint8_t* in_pos = in;
OutType* out_pos = out;
+#if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__))
+ int64_t batches_read = 0;
+ if constexpr (PdepUnpack::should_use<OutType, BIT_WIDTH>()) {
+ if (PdepUnpack::is_supported()) {
Review Comment:
**[P2] Skip feature probes when no full batch exists**
For `values_to_read < 32`, `batches_to_read` is zero, yet this still loads
the config and probes BMI2/AVX2 before falling through to the unchanged scalar
remainder. Parquet hybrid-RLE legitimately sends 8-, 16-, and 24-value literal
tails from `FillLiteralBuffer()` here, so this adds dispatch overhead to a hot
path with no possibility of using PDEP, and the benchmark starts at 4,096
values so it does not cover it. Guard `is_supported()` with `batches_to_read >
0` so short runs remain unchanged.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]