MCPcopy Create free account
hub / github.com/apache/arrow / AndByteVectors

Method AndByteVectors

cpp/src/arrow/compute/row/compare_internal.cc:316–330  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314}
315
316void KeyCompare::AndByteVectors(LightContext* ctx, uint32_t num_elements,
317 uint8_t* bytevector_A, const uint8_t* bytevector_B) {
318 uint32_t num_processed = 0;
319#if defined(ARROW_HAVE_RUNTIME_AVX2)
320 if (ctx->has_avx2()) {
321 num_processed = AndByteVectors_avx2(num_elements, bytevector_A, bytevector_B);
322 }
323#endif
324
325 for (uint32_t i = num_processed / 8; i < bit_util::CeilDiv(num_elements, 8); ++i) {
326 uint64_t* a = reinterpret_cast<uint64_t*>(bytevector_A);
327 const uint64_t* b = reinterpret_cast<const uint64_t*>(bytevector_B);
328 a[i] &= b[i];
329 }
330}
331
332void KeyCompare::CompareColumnsToRows(
333 uint32_t num_rows_to_compare, const uint16_t* sel_left_maybe_null,

Callers

nothing calls this directly

Calls 2

CeilDivFunction · 0.85
has_avx2Method · 0.80

Tested by

no test coverage detected