Line | Count | Source |
1 | | // Licensed to the Apache Software Foundation (ASF) under one |
2 | | // or more contributor license agreements. See the NOTICE file |
3 | | // distributed with this work for additional information |
4 | | // regarding copyright ownership. The ASF licenses this file |
5 | | // to you under the Apache License, Version 2.0 (the |
6 | | // "License"); you may not use this file except in compliance |
7 | | // with the License. You may obtain a copy of the License at |
8 | | // |
9 | | // http://www.apache.org/licenses/LICENSE-2.0 |
10 | | // |
11 | | // Unless required by applicable law or agreed to in writing, |
12 | | // software distributed under the License is distributed on an |
13 | | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
14 | | // KIND, either express or implied. See the License for the |
15 | | // specific language governing permissions and limitations |
16 | | // under the License. |
17 | | |
18 | | #pragma once |
19 | | |
20 | | #include <cstdint> |
21 | | #include <cstring> |
22 | | #include <type_traits> |
23 | | #include <vector> |
24 | | |
25 | | #if defined(__ARM_NEON) |
26 | | #include <arm_neon.h> |
27 | | #endif |
28 | | |
29 | | #include "util/sse_util.hpp" |
30 | | |
31 | | namespace doris::simd { |
32 | | consteval auto bits_mask_length() { |
33 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
34 | | return 16; |
35 | | #else |
36 | | return 32; |
37 | | #endif |
38 | | } |
39 | | |
40 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
41 | | inline uint64_t get_nibble_mask(uint8x16_t values) { |
42 | | // It produces 4-bit out of each byte, alternating between the high 4-bits and low 4-bits of the 16-byte vector. |
43 | | // Given that the comparison operators give a 16-byte result of 0x00 or 0xff, the result is close to being a PMOVMSKB, |
44 | | // the only difference is that every matching bit is repeated 4 times and is a 64-bit integer. |
45 | | // https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/porting-x86-vector-bitmask-optimizations-to-arm-neon?CommentId=af187ac6-ae00-4e4d-bbf0-e142187aa92e |
46 | | return vget_lane_u64(vreinterpret_u64_u8(vshrn_n_u16(vreinterpretq_u16_u8(values), 4)), 0); |
47 | | } |
48 | | /* |
49 | | Input 16 bytes of data and convert it into a 64-bit integer, where one bit appears 4 times. |
50 | | Compare with bytes32_mask_to_bits32_mask, a u8 array with a length of 32 |
51 | | std::vector<uint8_t> vec = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, |
52 | | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}; |
53 | | |
54 | | bytes32_mask_to_bits32_mask 0100 0000 0000 0000,1101 0000 0000 0011 |
55 | | |
56 | | |
57 | | (1101 0000 0000 0011) |
58 | | bytes16_mask_to_bits64_mask 1111 1111 0000 1111,0000 0000 0000 0000,0000 0000 0000 0000,0000 0000 1111 1111 |
59 | | (0100 0000 0000 0000) |
60 | | 0000 1111 0000 0000,0000 0000 0000 0000,0000 0000 0000 0000,0000 0000 0000 0000 |
61 | | */ |
62 | | |
63 | | inline uint64_t bytes16_mask_to_bits64_mask(const uint8_t* data) { |
64 | | const uint8x16_t vfilter = vld1q_u8(data); |
65 | | return get_nibble_mask(vmvnq_u8(vceqzq_u8(vfilter))); |
66 | | } |
67 | | #endif |
68 | | |
69 | 11.1M | inline uint32_t bytes32_mask_to_bits32_mask(const uint8_t* data) { |
70 | 11.1M | #ifdef __AVX2__ |
71 | 11.1M | auto zero32 = _mm256_setzero_si256(); |
72 | 11.1M | auto mask = static_cast<uint32_t>(_mm256_movemask_epi8( |
73 | 11.1M | _mm256_cmpgt_epi8(_mm256_loadu_si256(reinterpret_cast<const __m256i*>(data)), zero32))); |
74 | | #elif defined(__SSE2__) |
75 | | auto zero16 = _mm_setzero_si128(); |
76 | | uint32_t mask = |
77 | | (static_cast<uint32_t>(_mm_movemask_epi8(_mm_cmpgt_epi8( |
78 | | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16)))) | |
79 | | ((static_cast<uint32_t>(_mm_movemask_epi8(_mm_cmpgt_epi8( |
80 | | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) |
81 | | << 16) & |
82 | | 0xffff0000); |
83 | | #else |
84 | | uint32_t mask = 0; |
85 | | for (std::size_t i = 0; i < 32; ++i) { |
86 | | mask |= static_cast<uint32_t>(1 == *(data + i)) << i; |
87 | | } |
88 | | #endif |
89 | 11.1M | return mask; |
90 | 11.1M | } |
91 | | |
92 | 11.1M | inline auto bytes_mask_to_bits_mask(const uint8_t* data) { |
93 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
94 | | return bytes16_mask_to_bits64_mask(data); |
95 | | #else |
96 | 11.1M | return bytes32_mask_to_bits32_mask(data); |
97 | 11.1M | #endif |
98 | 11.1M | } |
99 | | |
100 | 6.88M | inline constexpr auto bits_mask_all() { |
101 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
102 | | return 0xffff'ffff'ffff'ffffULL; |
103 | | #else |
104 | 6.88M | return 0xffffffff; |
105 | 6.88M | #endif |
106 | 6.88M | } |
107 | | |
108 | | template <typename Func> |
109 | 1.80M | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { |
110 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
111 | | mask &= 0x8888'8888'8888'8888ULL; |
112 | | while (mask) { |
113 | | const auto index = __builtin_ctzll(mask) >> 2; |
114 | | func(index); |
115 | | mask &= mask - 1; |
116 | | } |
117 | | |
118 | | #else |
119 | 24.0M | while (mask) { |
120 | 22.2M | const auto bit_pos = __builtin_ctzll(mask); |
121 | 22.2M | func(bit_pos); |
122 | 22.2M | mask = mask & (mask - 1); |
123 | 22.2M | } |
124 | 1.80M | #endif |
125 | 1.80M | } _ZN5doris4simd25iterate_through_bits_maskIZNKS_13ColumnDecimalILNS_13PrimitiveTypeE28EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 5 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 157 | while (mask) { | 120 | 152 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 152 | func(bit_pos); | 122 | 152 | mask = mask & (mask - 1); | 123 | 152 | } | 124 | 5 | #endif | 125 | 5 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE28EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 7 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 181 | while (mask) { | 120 | 174 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 174 | func(bit_pos); | 122 | 174 | mask = mask & (mask - 1); | 123 | 174 | } | 124 | 7 | #endif | 125 | 7 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_13ColumnDecimalILNS_13PrimitiveTypeE29EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 499 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 7.81k | while (mask) { | 120 | 7.31k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 7.31k | func(bit_pos); | 122 | 7.31k | mask = mask & (mask - 1); | 123 | 7.31k | } | 124 | 499 | #endif | 125 | 499 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE29EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 2.26k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 24.5k | while (mask) { | 120 | 22.3k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 22.3k | func(bit_pos); | 122 | 22.3k | mask = mask & (mask - 1); | 123 | 22.3k | } | 124 | 2.26k | #endif | 125 | 2.26k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_13ColumnDecimalILNS_13PrimitiveTypeE20EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 2 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 64 | while (mask) { | 120 | 62 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 62 | func(bit_pos); | 122 | 62 | mask = mask & (mask - 1); | 123 | 62 | } | 124 | 2 | #endif | 125 | 2 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE20EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 2 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 64 | while (mask) { | 120 | 62 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 62 | func(bit_pos); | 122 | 62 | mask = mask & (mask - 1); | 123 | 62 | } | 124 | 2 | #endif | 125 | 2 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_13ColumnDecimalILNS_13PrimitiveTypeE30EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 386 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 9.21k | while (mask) { | 120 | 8.83k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 8.83k | func(bit_pos); | 122 | 8.83k | mask = mask & (mask - 1); | 123 | 8.83k | } | 124 | 386 | #endif | 125 | 386 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE30EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 13.0k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 124k | while (mask) { | 120 | 111k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 111k | func(bit_pos); | 122 | 111k | mask = mask & (mask - 1); | 123 | 111k | } | 124 | 13.0k | #endif | 125 | 13.0k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_13ColumnDecimalILNS_13PrimitiveTypeE35EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 7 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 224 | while (mask) { | 120 | 217 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 217 | func(bit_pos); | 122 | 217 | mask = mask & (mask - 1); | 123 | 217 | } | 124 | 7 | #endif | 125 | 7 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE35EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 7 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 224 | while (mask) { | 120 | 217 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 217 | func(bit_pos); | 122 | 217 | mask = mask & (mask - 1); | 123 | 217 | } | 124 | 7 | #endif | 125 | 7 | } |
unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIhjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Line | Count | Source | 109 | 41.5k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 274k | while (mask) { | 120 | 232k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 232k | func(bit_pos); | 122 | 232k | mask = mask & (mask - 1); | 123 | 232k | } | 124 | 41.5k | #endif | 125 | 41.5k | } |
unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIhjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Line | Count | Source | 109 | 139k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 859k | while (mask) { | 120 | 720k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 720k | func(bit_pos); | 122 | 720k | mask = mask & (mask - 1); | 123 | 720k | } | 124 | 139k | #endif | 125 | 139k | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIhjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIhjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIhmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Line | Count | Source | 109 | 316 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 5.48k | while (mask) { | 120 | 5.16k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 5.16k | func(bit_pos); | 122 | 5.16k | mask = mask & (mask - 1); | 123 | 5.16k | } | 124 | 316 | #endif | 125 | 316 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIhmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIhmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Line | Count | Source | 109 | 345 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 5.62k | while (mask) { | 120 | 5.27k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 5.27k | func(bit_pos); | 122 | 5.27k | mask = mask & (mask - 1); | 123 | 5.27k | } | 124 | 345 | #endif | 125 | 345 | } |
unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIhmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Line | Count | Source | 109 | 2.84k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 21.8k | while (mask) { | 120 | 19.0k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 19.0k | func(bit_pos); | 122 | 19.0k | mask = mask & (mask - 1); | 123 | 19.0k | } | 124 | 2.84k | #endif | 125 | 2.84k | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericItjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingItjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericItjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingItjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericItmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingItmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericItmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingItmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_15DateV2ValueTypeEEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_15DateV2ValueTypeEEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_15DateV2ValueTypeEEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_15DateV2ValueTypeEEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_15DateV2ValueTypeEEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_15DateV2ValueTypeEEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Line | Count | Source | 109 | 169 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 347 | while (mask) { | 120 | 178 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 178 | func(bit_pos); | 122 | 178 | mask = mask & (mask - 1); | 123 | 178 | } | 124 | 169 | #endif | 125 | 169 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_15DateV2ValueTypeEEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_15DateV2ValueTypeEEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Line | Count | Source | 109 | 572 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 12.6k | while (mask) { | 120 | 12.0k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 12.0k | func(bit_pos); | 122 | 12.0k | mask = mask & (mask - 1); | 123 | 12.0k | } | 124 | 572 | #endif | 125 | 572 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimeStampNsValueEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimeStampNsValueEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimeStampNsValueEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimeStampNsValueEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimeStampNsValueEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimeStampNsValueEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimeStampNsValueEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimeStampNsValueEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimestampTzValueEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimestampTzValueEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimestampTzValueEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimestampTzValueEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimestampTzValueEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimestampTzValueEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16TimestampTzValueEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16TimestampTzValueEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIjjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIjjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIjjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIjjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIjmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIjmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIjmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIjmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericImjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingImjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericImjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingImjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericImmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingImmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericImmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingImmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIN4wide7integerILm128EjEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIN4wide7integerILm128EjEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIN4wide7integerILm128EjEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIN4wide7integerILm128EjEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIN4wide7integerILm128EjEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIN4wide7integerILm128EjEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIN4wide7integerILm128EjEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS9_IT0_Lm4096ESD_Lm16ELm15EEERSE_PSI_RKNS9_IhLm4096ESD_Lm16ELm15EEElEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIN4wide7integerILm128EjEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS9_IT0_Lm4096ESD_Lm16ELm15EEERKNS9_IhLm4096ESD_Lm16ELm15EEEEUlmE_EEvSA_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIajNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIajNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIajNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIajNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIamNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIamNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Line | Count | Source | 109 | 9 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 108 | while (mask) { | 120 | 99 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 99 | func(bit_pos); | 122 | 99 | mask = mask & (mask - 1); | 123 | 99 | } | 124 | 9 | #endif | 125 | 9 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIamNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIamNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIsjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIsjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIsjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIsjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIsmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIsmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Line | Count | Source | 109 | 3 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 6 | while (mask) { | 120 | 3 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3 | func(bit_pos); | 122 | 3 | mask = mask & (mask - 1); | 123 | 3 | } | 124 | 3 | #endif | 125 | 3 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIsmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIsmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIijNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIijNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIijNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIijNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIimNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Line | Count | Source | 109 | 17 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 115 | while (mask) { | 120 | 98 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 98 | func(bit_pos); | 122 | 98 | mask = mask & (mask - 1); | 123 | 98 | } | 124 | 17 | #endif | 125 | 17 | } |
unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIimNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Line | Count | Source | 109 | 668 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 2.79k | while (mask) { | 120 | 2.13k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 2.13k | func(bit_pos); | 122 | 2.13k | mask = mask & (mask - 1); | 123 | 2.13k | } | 124 | 668 | #endif | 125 | 668 | } |
Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIimNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIimNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIljNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIljNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIljNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIljNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIlmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIlmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIlmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIlmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16VecDateTimeValueEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16VecDateTimeValueEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16VecDateTimeValueEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16VecDateTimeValueEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16VecDateTimeValueEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16VecDateTimeValueEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_16VecDateTimeValueEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_16VecDateTimeValueEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericInjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingInjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericInjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingInjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericInmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingInmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericInmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingInmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIfjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIfjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIfjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIfjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIfmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIfmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIfmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIfmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIdjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIdjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIdjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIdjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIdmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIdmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericIdmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS6_IT0_Lm4096ESA_Lm16ELm15EEERSB_PSF_RKNS6_IhLm4096ESA_Lm16ELm15EEElEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingIdmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IT0_Lm4096ESA_Lm16ELm15EEERKNS6_IhLm4096ESA_Lm16ELm15EEEEUlmE_EEvS7_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIiEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIiEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIiEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIiEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIiEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIiEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIiEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIiEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIlEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIlEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIlEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIlEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIlEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIlEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIlEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIlEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalInEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalInEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalInEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalInEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalInEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalInEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalInEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS8_IT0_Lm4096ESC_Lm16ELm15EEERSD_PSH_RKNS8_IhLm4096ESC_Lm16ELm15EEElEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalInEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IT0_Lm4096ESC_Lm16ELm15EEERKNS8_IhLm4096ESC_Lm16ELm15EEEEUlmE_EEvS9_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_12Decimal128V3EjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_12Decimal128V3EjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_12Decimal128V3EjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_12Decimal128V3EjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_12Decimal128V3EmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_12Decimal128V3EmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_12Decimal128V3EmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS7_IT0_Lm4096ESB_Lm16ELm15EEERSC_PSG_RKNS7_IhLm4096ESB_Lm16ELm15EEElEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_12Decimal128V3EmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS7_IT0_Lm4096ESB_Lm16ELm15EEERKNS7_IhLm4096ESB_Lm16ELm15EEEEUlmE_EEvS8_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIN4wide7integerILm256EiEEEEjNS2_20ResultOffsetsBuilderIjLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNSB_IT0_Lm4096ESF_Lm16ELm15EEERSG_PSK_RKNSB_IhLm4096ESF_Lm16ELm15EEElEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIN4wide7integerILm256EiEEEEjNS2_20ResultOffsetsBuilderIjLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNSB_IT0_Lm4096ESF_Lm16ELm15EEERKNSB_IhLm4096ESF_Lm16ELm15EEEEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIN4wide7integerILm256EiEEEEjNS2_22NoResultOffsetsBuilderIjEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNSB_IT0_Lm4096ESF_Lm16ELm15EEERSG_PSK_RKNSB_IhLm4096ESF_Lm16ELm15EEElEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIN4wide7integerILm256EiEEEEjNS2_22NoResultOffsetsBuilderIjEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNSB_IT0_Lm4096ESF_Lm16ELm15EEERKNSB_IhLm4096ESF_Lm16ELm15EEEEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIN4wide7integerILm256EiEEEEmNS2_20ResultOffsetsBuilderImLb0EEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNSB_IT0_Lm4096ESF_Lm16ELm15EEERSG_PSK_RKNSB_IhLm4096ESF_Lm16ELm15EEElEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIN4wide7integerILm256EiEEEEmNS2_20ResultOffsetsBuilderImLb1EEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNSB_IT0_Lm4096ESF_Lm16ELm15EEERKNSB_IhLm4096ESF_Lm16ELm15EEEEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_126filter_arrays_impl_genericINS_7DecimalIN4wide7integerILm256EiEEEEmNS2_22NoResultOffsetsBuilderImEEEEvRKNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNSB_IT0_Lm4096ESF_Lm16ELm15EEERSG_PSK_RKNSB_IhLm4096ESF_Lm16ELm15EEElEUlmE_EEvSC_j Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_12_GLOBAL__N_144filter_arrays_impl_generic_without_reservingINS_7DecimalIN4wide7integerILm256EiEEEEmNS2_22NoResultOffsetsBuilderImEEEEmRNS_8PODArrayIT_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNSB_IT0_Lm4096ESF_Lm16ELm15EEERKNSB_IhLm4096ESF_Lm16ELm15EEEEUlmE_EEvSC_j _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE2EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 107k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 1.10M | while (mask) { | 120 | 1.00M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 1.00M | func(bit_pos); | 122 | 1.00M | mask = mask & (mask - 1); | 123 | 1.00M | } | 124 | 107k | #endif | 125 | 107k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE2EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 339k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 4.03M | while (mask) { | 120 | 3.69M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3.69M | func(bit_pos); | 122 | 3.69M | mask = mask & (mask - 1); | 123 | 3.69M | } | 124 | 339k | #endif | 125 | 339k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE3EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 2 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 64 | while (mask) { | 120 | 62 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 62 | func(bit_pos); | 122 | 62 | mask = mask & (mask - 1); | 123 | 62 | } | 124 | 2 | #endif | 125 | 2 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE3EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 18.2k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 235k | while (mask) { | 120 | 217k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 217k | func(bit_pos); | 122 | 217k | mask = mask & (mask - 1); | 123 | 217k | } | 124 | 18.2k | #endif | 125 | 18.2k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE4EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 2 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 64 | while (mask) { | 120 | 62 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 62 | func(bit_pos); | 122 | 62 | mask = mask & (mask - 1); | 123 | 62 | } | 124 | 2 | #endif | 125 | 2 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE4EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 1.70k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 29.6k | while (mask) { | 120 | 27.9k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 27.9k | func(bit_pos); | 122 | 27.9k | mask = mask & (mask - 1); | 123 | 27.9k | } | 124 | 1.70k | #endif | 125 | 1.70k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE5EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 3.53k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 36.8k | while (mask) { | 120 | 33.3k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 33.3k | func(bit_pos); | 122 | 33.3k | mask = mask & (mask - 1); | 123 | 33.3k | } | 124 | 3.53k | #endif | 125 | 3.53k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE5EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 69.5k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 1.23M | while (mask) { | 120 | 1.16M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 1.16M | func(bit_pos); | 122 | 1.16M | mask = mask & (mask - 1); | 123 | 1.16M | } | 124 | 69.5k | #endif | 125 | 69.5k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE6EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 8.36k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 53.2k | while (mask) { | 120 | 44.8k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 44.8k | func(bit_pos); | 122 | 44.8k | mask = mask & (mask - 1); | 123 | 44.8k | } | 124 | 8.36k | #endif | 125 | 8.36k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE6EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 33.8k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 227k | while (mask) { | 120 | 193k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 193k | func(bit_pos); | 122 | 193k | mask = mask & (mask - 1); | 123 | 193k | } | 124 | 33.8k | #endif | 125 | 33.8k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE7EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 2 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 64 | while (mask) { | 120 | 62 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 62 | func(bit_pos); | 122 | 62 | mask = mask & (mask - 1); | 123 | 62 | } | 124 | 2 | #endif | 125 | 2 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE7EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 9.79k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 46.2k | while (mask) { | 120 | 36.4k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 36.4k | func(bit_pos); | 122 | 36.4k | mask = mask & (mask - 1); | 123 | 36.4k | } | 124 | 9.79k | #endif | 125 | 9.79k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE8EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE8EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 2.56k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 5.87k | while (mask) { | 120 | 3.30k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3.30k | func(bit_pos); | 122 | 3.30k | mask = mask & (mask - 1); | 123 | 3.30k | } | 124 | 2.56k | #endif | 125 | 2.56k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE9EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE9EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 13.6k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 65.0k | while (mask) { | 120 | 51.3k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 51.3k | func(bit_pos); | 122 | 51.3k | mask = mask & (mask - 1); | 123 | 51.3k | } | 124 | 13.6k | #endif | 125 | 13.6k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE36EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE36EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE37EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE37EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE44EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 1.28k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 12.1k | while (mask) { | 120 | 10.9k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 10.9k | func(bit_pos); | 122 | 10.9k | mask = mask & (mask - 1); | 123 | 10.9k | } | 124 | 1.28k | #endif | 125 | 1.28k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE44EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 8.08k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 100k | while (mask) { | 120 | 92.6k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 92.6k | func(bit_pos); | 122 | 92.6k | mask = mask & (mask - 1); | 123 | 92.6k | } | 124 | 8.08k | #endif | 125 | 8.08k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE11EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE11EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 510 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 1.04k | while (mask) { | 120 | 533 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 533 | func(bit_pos); | 122 | 533 | mask = mask & (mask - 1); | 123 | 533 | } | 124 | 510 | #endif | 125 | 510 | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE25EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE25EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 399k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 8.06M | while (mask) { | 120 | 7.66M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 7.66M | func(bit_pos); | 122 | 7.66M | mask = mask & (mask - 1); | 123 | 7.66M | } | 124 | 399k | #endif | 125 | 399k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE12EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE12EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 273 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 561 | while (mask) { | 120 | 288 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 288 | func(bit_pos); | 122 | 288 | mask = mask & (mask - 1); | 123 | 288 | } | 124 | 273 | #endif | 125 | 273 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE26EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 3 | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 6 | while (mask) { | 120 | 3 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3 | func(bit_pos); | 122 | 3 | mask = mask & (mask - 1); | 123 | 3 | } | 124 | 3 | #endif | 125 | 3 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE26EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 66.5k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 1.76M | while (mask) { | 120 | 1.69M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 1.69M | func(bit_pos); | 122 | 1.69M | mask = mask & (mask - 1); | 123 | 1.69M | } | 124 | 66.5k | #endif | 125 | 66.5k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE43EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE43EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE27EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE27EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE42EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE42EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE38EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE38EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 54.1k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 275k | while (mask) { | 120 | 221k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 221k | func(bit_pos); | 122 | 221k | mask = mask & (mask - 1); | 123 | 221k | } | 124 | 54.1k | #endif | 125 | 54.1k | } |
Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE39EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Unexecuted instantiation: _ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE39EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j unity_22_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_10segment_v215SegmentIterator33_evaluate_vectorization_predicateEPttE3$_0EEvT_j Line | Count | Source | 109 | 181k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 432k | while (mask) { | 120 | 250k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 250k | func(bit_pos); | 122 | 250k | mask = mask & (mask - 1); | 123 | 250k | } | 124 | 181k | #endif | 125 | 181k | } |
unity_22_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_10segment_v215SegmentIterator28_evaluate_common_expr_filterEPttRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEE3$_0EEvT_j Line | Count | Source | 109 | 283k | void iterate_through_bits_mask(Func func, decltype(bytes_mask_to_bits_mask(nullptr)) mask) { | 110 | | #if defined(__ARM_NEON) && defined(__aarch64__) | 111 | | mask &= 0x8888'8888'8888'8888ULL; | 112 | | while (mask) { | 113 | | const auto index = __builtin_ctzll(mask) >> 2; | 114 | | func(index); | 115 | | mask &= mask - 1; | 116 | | } | 117 | | | 118 | | #else | 119 | 5.01M | while (mask) { | 120 | 4.73M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 4.73M | func(bit_pos); | 122 | 4.73M | mask = mask & (mask - 1); | 123 | 4.73M | } | 124 | 283k | #endif | 125 | 283k | } |
|
126 | | |
127 | | struct FilterCounts { |
128 | | size_t input_rows = 0; |
129 | | size_t output_rows = 0; |
130 | | }; |
131 | | |
132 | | // Merge a filter in-place and count nonzero bytes before and after the merge. |
133 | | // Nullable filters preserve the scalar expression data[i] &= !null_map[i] & filter[i]. |
134 | | template <bool nullable = false> |
135 | | inline FilterCounts filter_and_count(uint8_t* __restrict data, const uint8_t* __restrict filter, |
136 | 9.67k | size_t size, const uint8_t* __restrict null_map = nullptr) { |
137 | 9.67k | FilterCounts counts; |
138 | 9.67k | size_t i = 0; |
139 | 9.67k | #if defined(__SSE2__) || defined(__aarch64__) |
140 | 9.67k | const __m128i zero = _mm_setzero_si128(); |
141 | 9.67k | __m128i input_sum = zero; |
142 | 9.67k | __m128i output_sum = zero; |
143 | 9.67k | const size_t vector_size = size / 64 * 64; |
144 | 188k | for (; i < vector_size; i += 64) { |
145 | 178k | __m128i input_zeros = zero; |
146 | 178k | __m128i output_zeros = zero; |
147 | 894k | for (size_t offset = 0; offset < 64; offset += 16) { |
148 | 715k | const auto before = |
149 | 715k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); |
150 | 715k | const auto filter_values = |
151 | 715k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); |
152 | 715k | auto after = _mm_and_si128(before, filter_values); |
153 | 715k | if constexpr (nullable) { |
154 | 438k | const auto nulls = |
155 | 438k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + i + offset)); |
156 | 438k | const auto valid = _mm_and_si128(_mm_cmpeq_epi8(nulls, zero), _mm_set1_epi8(1)); |
157 | 438k | after = _mm_and_si128(after, valid); |
158 | 438k | } |
159 | | // Each byte accumulates at most four zeros. Reduce once per 64 rows |
160 | | // without expanding bytes into size_t lanes or emulating movemask on ARM. |
161 | 715k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); |
162 | 715k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); |
163 | 715k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); |
164 | 715k | } |
165 | 178k | input_sum = _mm_add_epi64(input_sum, _mm_sad_epu8(input_zeros, zero)); |
166 | 178k | output_sum = _mm_add_epi64(output_sum, _mm_sad_epu8(output_zeros, zero)); |
167 | 178k | } |
168 | 9.67k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( |
169 | 9.67k | input_sum, _mm_srli_si128(input_sum, 8)))); |
170 | 9.67k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( |
171 | 9.67k | output_sum, _mm_srli_si128(output_sum, 8)))); |
172 | 9.67k | #endif |
173 | 164k | for (; i < size; ++i) { |
174 | 154k | const uint8_t before = data[i]; |
175 | 154k | uint8_t after = before & filter[i]; |
176 | 154k | if constexpr (nullable) { |
177 | 82.3k | after &= !null_map[i]; |
178 | 82.3k | } |
179 | 154k | counts.input_rows += before != 0; |
180 | 154k | counts.output_rows += after != 0; |
181 | 154k | data[i] = after; |
182 | 154k | } |
183 | 9.67k | return counts; |
184 | 9.67k | } _ZN5doris4simd16filter_and_countILb1EEENS0_12FilterCountsEPhPKhmS5_ Line | Count | Source | 136 | 5.46k | size_t size, const uint8_t* __restrict null_map = nullptr) { | 137 | 5.46k | FilterCounts counts; | 138 | 5.46k | size_t i = 0; | 139 | 5.46k | #if defined(__SSE2__) || defined(__aarch64__) | 140 | 5.46k | const __m128i zero = _mm_setzero_si128(); | 141 | 5.46k | __m128i input_sum = zero; | 142 | 5.46k | __m128i output_sum = zero; | 143 | 5.46k | const size_t vector_size = size / 64 * 64; | 144 | 115k | for (; i < vector_size; i += 64) { | 145 | 109k | __m128i input_zeros = zero; | 146 | 109k | __m128i output_zeros = zero; | 147 | 548k | for (size_t offset = 0; offset < 64; offset += 16) { | 148 | 438k | const auto before = | 149 | 438k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); | 150 | 438k | const auto filter_values = | 151 | 438k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); | 152 | 438k | auto after = _mm_and_si128(before, filter_values); | 153 | 438k | if constexpr (nullable) { | 154 | 438k | const auto nulls = | 155 | 438k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + i + offset)); | 156 | 438k | const auto valid = _mm_and_si128(_mm_cmpeq_epi8(nulls, zero), _mm_set1_epi8(1)); | 157 | 438k | after = _mm_and_si128(after, valid); | 158 | 438k | } | 159 | | // Each byte accumulates at most four zeros. Reduce once per 64 rows | 160 | | // without expanding bytes into size_t lanes or emulating movemask on ARM. | 161 | 438k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); | 162 | 438k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); | 163 | 438k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); | 164 | 438k | } | 165 | 109k | input_sum = _mm_add_epi64(input_sum, _mm_sad_epu8(input_zeros, zero)); | 166 | 109k | output_sum = _mm_add_epi64(output_sum, _mm_sad_epu8(output_zeros, zero)); | 167 | 109k | } | 168 | 5.46k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 169 | 5.46k | input_sum, _mm_srli_si128(input_sum, 8)))); | 170 | 5.46k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 171 | 5.46k | output_sum, _mm_srli_si128(output_sum, 8)))); | 172 | 5.46k | #endif | 173 | 87.8k | for (; i < size; ++i) { | 174 | 82.3k | const uint8_t before = data[i]; | 175 | 82.3k | uint8_t after = before & filter[i]; | 176 | 82.3k | if constexpr (nullable) { | 177 | 82.3k | after &= !null_map[i]; | 178 | 82.3k | } | 179 | 82.3k | counts.input_rows += before != 0; | 180 | 82.3k | counts.output_rows += after != 0; | 181 | 82.3k | data[i] = after; | 182 | 82.3k | } | 183 | 5.46k | return counts; | 184 | 5.46k | } |
_ZN5doris4simd16filter_and_countILb0EEENS0_12FilterCountsEPhPKhmS5_ Line | Count | Source | 136 | 4.21k | size_t size, const uint8_t* __restrict null_map = nullptr) { | 137 | 4.21k | FilterCounts counts; | 138 | 4.21k | size_t i = 0; | 139 | 4.21k | #if defined(__SSE2__) || defined(__aarch64__) | 140 | 4.21k | const __m128i zero = _mm_setzero_si128(); | 141 | 4.21k | __m128i input_sum = zero; | 142 | 4.21k | __m128i output_sum = zero; | 143 | 4.21k | const size_t vector_size = size / 64 * 64; | 144 | 73.3k | for (; i < vector_size; i += 64) { | 145 | 69.1k | __m128i input_zeros = zero; | 146 | 69.1k | __m128i output_zeros = zero; | 147 | 345k | for (size_t offset = 0; offset < 64; offset += 16) { | 148 | 276k | const auto before = | 149 | 276k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); | 150 | 276k | const auto filter_values = | 151 | 276k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); | 152 | 276k | auto after = _mm_and_si128(before, filter_values); | 153 | | if constexpr (nullable) { | 154 | | const auto nulls = | 155 | | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + i + offset)); | 156 | | const auto valid = _mm_and_si128(_mm_cmpeq_epi8(nulls, zero), _mm_set1_epi8(1)); | 157 | | after = _mm_and_si128(after, valid); | 158 | | } | 159 | | // Each byte accumulates at most four zeros. Reduce once per 64 rows | 160 | | // without expanding bytes into size_t lanes or emulating movemask on ARM. | 161 | 276k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); | 162 | 276k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); | 163 | 276k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); | 164 | 276k | } | 165 | 69.1k | input_sum = _mm_add_epi64(input_sum, _mm_sad_epu8(input_zeros, zero)); | 166 | 69.1k | output_sum = _mm_add_epi64(output_sum, _mm_sad_epu8(output_zeros, zero)); | 167 | 69.1k | } | 168 | 4.21k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 169 | 4.21k | input_sum, _mm_srli_si128(input_sum, 8)))); | 170 | 4.21k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 171 | 4.21k | output_sum, _mm_srli_si128(output_sum, 8)))); | 172 | 4.21k | #endif | 173 | 76.3k | for (; i < size; ++i) { | 174 | 72.1k | const uint8_t before = data[i]; | 175 | 72.1k | uint8_t after = before & filter[i]; | 176 | | if constexpr (nullable) { | 177 | | after &= !null_map[i]; | 178 | | } | 179 | 72.1k | counts.input_rows += before != 0; | 180 | 72.1k | counts.output_rows += after != 0; | 181 | 72.1k | data[i] = after; | 182 | 72.1k | } | 183 | 4.21k | return counts; | 184 | 4.21k | } |
|
185 | | |
186 | | template <typename T> |
187 | | requires requires { std::is_unsigned_v<T>; } |
188 | 3.64M | inline T count_zero_num(const int8_t* __restrict data, T size) { |
189 | 3.64M | T num = 0; |
190 | 3.64M | const int8_t* end = data + size; |
191 | | #if defined(__ARM_NEON) |
192 | | const int8_t* end64 = data + (size / 64 * 64); |
193 | | |
194 | | for (; data < end64; data += 64) { |
195 | | auto a0 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data)), 7); |
196 | | auto a1 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 16)), 7); |
197 | | auto a2 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 32)), 7); |
198 | | auto a3 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 48)), 7); |
199 | | |
200 | | auto s0 = vaddq_u8(a0, a1); |
201 | | auto s1 = vaddq_u8(a2, a3); |
202 | | auto s = vaddq_u8(s0, s1); |
203 | | num += vaddvq_u8(s); |
204 | | } |
205 | | #elif defined(__SSE2__) && defined(__POPCNT__) |
206 | | const __m128i zero16 = _mm_setzero_si128(); |
207 | 3.64M | const int8_t* end64 = data + (size / 64 * 64); |
208 | | |
209 | 9.37M | for (; data < end64; data += 64) { |
210 | 5.72M | num += __builtin_popcountll( |
211 | 5.72M | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
212 | 5.72M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | |
213 | 5.72M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
214 | 5.72M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) |
215 | 5.72M | << 16U) | |
216 | 5.72M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
217 | 5.72M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) |
218 | 5.72M | << 32U) | |
219 | 5.72M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
220 | 5.72M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) |
221 | 5.72M | << 48U)); |
222 | 5.72M | } |
223 | 3.64M | #endif |
224 | 16.5M | for (; data < end; ++data) { |
225 | 12.8M | num += (*data == 0); |
226 | 12.8M | } |
227 | 3.64M | return num; |
228 | 3.64M | } _ZN5doris4simd14count_zero_numImQrqXsr3stdE13is_unsigned_vIT_EEEES2_PKaS2_ Line | Count | Source | 188 | 3.60M | inline T count_zero_num(const int8_t* __restrict data, T size) { | 189 | 3.60M | T num = 0; | 190 | 3.60M | const int8_t* end = data + size; | 191 | | #if defined(__ARM_NEON) | 192 | | const int8_t* end64 = data + (size / 64 * 64); | 193 | | | 194 | | for (; data < end64; data += 64) { | 195 | | auto a0 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data)), 7); | 196 | | auto a1 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 16)), 7); | 197 | | auto a2 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 32)), 7); | 198 | | auto a3 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 48)), 7); | 199 | | | 200 | | auto s0 = vaddq_u8(a0, a1); | 201 | | auto s1 = vaddq_u8(a2, a3); | 202 | | auto s = vaddq_u8(s0, s1); | 203 | | num += vaddvq_u8(s); | 204 | | } | 205 | | #elif defined(__SSE2__) && defined(__POPCNT__) | 206 | | const __m128i zero16 = _mm_setzero_si128(); | 207 | 3.60M | const int8_t* end64 = data + (size / 64 * 64); | 208 | | | 209 | 9.31M | for (; data < end64; data += 64) { | 210 | 5.70M | num += __builtin_popcountll( | 211 | 5.70M | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 212 | 5.70M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | | 213 | 5.70M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 214 | 5.70M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) | 215 | 5.70M | << 16U) | | 216 | 5.70M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 217 | 5.70M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) | 218 | 5.70M | << 32U) | | 219 | 5.70M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 220 | 5.70M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) | 221 | 5.70M | << 48U)); | 222 | 5.70M | } | 223 | 3.60M | #endif | 224 | 16.0M | for (; data < end; ++data) { | 225 | 12.4M | num += (*data == 0); | 226 | 12.4M | } | 227 | 3.60M | return num; | 228 | 3.60M | } |
_ZN5doris4simd14count_zero_numIlQrqXsr3stdE13is_unsigned_vIT_EEEES2_PKaS2_ Line | Count | Source | 188 | 1.29k | inline T count_zero_num(const int8_t* __restrict data, T size) { | 189 | 1.29k | T num = 0; | 190 | 1.29k | const int8_t* end = data + size; | 191 | | #if defined(__ARM_NEON) | 192 | | const int8_t* end64 = data + (size / 64 * 64); | 193 | | | 194 | | for (; data < end64; data += 64) { | 195 | | auto a0 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data)), 7); | 196 | | auto a1 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 16)), 7); | 197 | | auto a2 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 32)), 7); | 198 | | auto a3 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 48)), 7); | 199 | | | 200 | | auto s0 = vaddq_u8(a0, a1); | 201 | | auto s1 = vaddq_u8(a2, a3); | 202 | | auto s = vaddq_u8(s0, s1); | 203 | | num += vaddvq_u8(s); | 204 | | } | 205 | | #elif defined(__SSE2__) && defined(__POPCNT__) | 206 | | const __m128i zero16 = _mm_setzero_si128(); | 207 | 1.29k | const int8_t* end64 = data + (size / 64 * 64); | 208 | | | 209 | 1.29k | for (; data < end64; data += 64) { | 210 | 0 | num += __builtin_popcountll( | 211 | 0 | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 212 | 0 | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | | 213 | 0 | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 214 | 0 | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) | 215 | 0 | << 16U) | | 216 | 0 | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 217 | 0 | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) | 218 | 0 | << 32U) | | 219 | 0 | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 220 | 0 | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) | 221 | 0 | << 48U)); | 222 | 0 | } | 223 | 1.29k | #endif | 224 | 2.62k | for (; data < end; ++data) { | 225 | 1.33k | num += (*data == 0); | 226 | 1.33k | } | 227 | 1.29k | return num; | 228 | 1.29k | } |
_ZN5doris4simd14count_zero_numIiQrqXsr3stdE13is_unsigned_vIT_EEEES2_PKaS2_ Line | Count | Source | 188 | 33.7k | inline T count_zero_num(const int8_t* __restrict data, T size) { | 189 | 33.7k | T num = 0; | 190 | 33.7k | const int8_t* end = data + size; | 191 | | #if defined(__ARM_NEON) | 192 | | const int8_t* end64 = data + (size / 64 * 64); | 193 | | | 194 | | for (; data < end64; data += 64) { | 195 | | auto a0 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data)), 7); | 196 | | auto a1 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 16)), 7); | 197 | | auto a2 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 32)), 7); | 198 | | auto a3 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 48)), 7); | 199 | | | 200 | | auto s0 = vaddq_u8(a0, a1); | 201 | | auto s1 = vaddq_u8(a2, a3); | 202 | | auto s = vaddq_u8(s0, s1); | 203 | | num += vaddvq_u8(s); | 204 | | } | 205 | | #elif defined(__SSE2__) && defined(__POPCNT__) | 206 | | const __m128i zero16 = _mm_setzero_si128(); | 207 | 33.7k | const int8_t* end64 = data + (size / 64 * 64); | 208 | | | 209 | 52.7k | for (; data < end64; data += 64) { | 210 | 19.0k | num += __builtin_popcountll( | 211 | 19.0k | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 212 | 19.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | | 213 | 19.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 214 | 19.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) | 215 | 19.0k | << 16U) | | 216 | 19.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 217 | 19.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) | 218 | 19.0k | << 32U) | | 219 | 19.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 220 | 19.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) | 221 | 19.0k | << 48U)); | 222 | 19.0k | } | 223 | 33.7k | #endif | 224 | 426k | for (; data < end; ++data) { | 225 | 392k | num += (*data == 0); | 226 | 392k | } | 227 | 33.7k | return num; | 228 | 33.7k | } |
|
229 | | |
230 | | template <typename T> |
231 | | requires requires { std::is_unsigned_v<T>; } |
232 | 4.25k | inline T count_zero_num(const int8_t* __restrict data, const uint8_t* __restrict null_map, T size) { |
233 | 4.25k | T num = 0; |
234 | 4.25k | const int8_t* end = data + size; |
235 | | #if defined(__ARM_NEON) |
236 | | const int8_t* end64 = data + (size / 64 * 64); |
237 | | |
238 | | for (; data < end64; data += 64, null_map += 64) { |
239 | | auto a0 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data)), 7); |
240 | | auto a1 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 16)), 7); |
241 | | auto a2 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 32)), 7); |
242 | | auto a3 = vshrq_n_u8(vceqzq_s8(vld1q_s8(data + 48)), 7); |
243 | | |
244 | | auto r0 = vorrq_u8(a0, vld1q_u8(null_map)); |
245 | | auto r1 = vorrq_u8(a1, vld1q_u8(null_map + 16)); |
246 | | auto r2 = vorrq_u8(a2, vld1q_u8(null_map + 32)); |
247 | | auto r3 = vorrq_u8(a3, vld1q_u8(null_map + 48)); |
248 | | |
249 | | auto s0 = vaddq_u8(r0, r1); |
250 | | auto s1 = vaddq_u8(r2, r3); |
251 | | auto s = vaddq_u8(s0, s1); |
252 | | num += vaddvq_u8(s); |
253 | | } |
254 | | #elif defined(__SSE2__) && defined(__POPCNT__) |
255 | | const __m128i zero16 = _mm_setzero_si128(); |
256 | 4.25k | const __m128i one16 = _mm_set1_epi8(1); |
257 | 4.25k | const int8_t* end64 = data + (size / 64 * 64); |
258 | | |
259 | 14.6k | for (; data < end64; data += 64, null_map += 64) { |
260 | 10.3k | num += __builtin_popcountll( |
261 | 10.3k | static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
262 | 10.3k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), |
263 | 10.3k | zero16), |
264 | 10.3k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map)), |
265 | 10.3k | one16)))) | |
266 | 10.3k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
267 | 10.3k | _mm_cmpeq_epi8( |
268 | 10.3k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), |
269 | 10.3k | zero16), |
270 | 10.3k | _mm_cmpeq_epi8( |
271 | 10.3k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 16)), |
272 | 10.3k | one16)))) |
273 | 10.3k | << 16U) | |
274 | 10.3k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
275 | 10.3k | _mm_cmpeq_epi8( |
276 | 10.3k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), |
277 | 10.3k | zero16), |
278 | 10.3k | _mm_cmpeq_epi8( |
279 | 10.3k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 32)), |
280 | 10.3k | one16)))) |
281 | 10.3k | << 32U) | |
282 | 10.3k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
283 | 10.3k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), |
284 | 10.3k | zero16), |
285 | 10.3k | _mm_cmpeq_epi8( |
286 | 10.3k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 48)), |
287 | 10.3k | one16))))) |
288 | 10.3k | << 48U); |
289 | 10.3k | } |
290 | 4.25k | #endif |
291 | 37.7k | for (; data < end; ++data, ++null_map) { |
292 | 33.4k | num += ((*data == 0) | *null_map); |
293 | 33.4k | } |
294 | 4.25k | return num; |
295 | 4.25k | } |
296 | | |
297 | | // TODO: compare with different SIMD implements |
298 | | template <class T> |
299 | 647k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { |
300 | 647k | if (start >= vec.size()) { |
301 | 18.0k | return start; |
302 | 18.0k | } |
303 | 629k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); |
304 | 629k | if (p == nullptr) { |
305 | 55.9k | return vec.size(); |
306 | 55.9k | } |
307 | 573k | return (T*)p - vec.data(); |
308 | 629k | } unity_14_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 468k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 468k | if (start >= vec.size()) { | 301 | 16.4k | return start; | 302 | 16.4k | } | 303 | 451k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 451k | if (p == nullptr) { | 305 | 53.0k | return vec.size(); | 306 | 53.0k | } | 307 | 398k | return (T*)p - vec.data(); | 308 | 451k | } |
unity_0_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 317 | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 317 | if (start >= vec.size()) { | 301 | 35 | return start; | 302 | 35 | } | 303 | 282 | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 282 | if (p == nullptr) { | 305 | 239 | return vec.size(); | 306 | 239 | } | 307 | 43 | return (T*)p - vec.data(); | 308 | 282 | } |
Unexecuted instantiation: unity_4_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ unity_1_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 45.9k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 45.9k | if (start >= vec.size()) { | 301 | 18 | return start; | 302 | 18 | } | 303 | 45.9k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 45.9k | if (p == nullptr) { | 305 | 63 | return vec.size(); | 306 | 63 | } | 307 | 45.9k | return (T*)p - vec.data(); | 308 | 45.9k | } |
column_vector.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 133k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 133k | if (start >= vec.size()) { | 301 | 1.55k | return start; | 302 | 1.55k | } | 303 | 132k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 132k | if (p == nullptr) { | 305 | 2.66k | return vec.size(); | 306 | 2.66k | } | 307 | 129k | return (T*)p - vec.data(); | 308 | 132k | } |
Unexecuted instantiation: unity_5_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_12_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_8_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_9_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_10_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_11_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_7_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_6_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_3_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_2_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: hashjoin_build_sink.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: join_build_sink_operator.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: operator.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: partitioned_aggregation_sink_operator.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: scan_operator.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: vfile_result_writer.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_32_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_30_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_28_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_27_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_26_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_25_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_24_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_22_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_21_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_20_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_19_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_18_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_17_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_16_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: unity_15_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: ai_functions.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: function_date_or_datetime_computation.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: function_datetime_floor_ceil.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: uuid.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: vorc_reader.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: vparquet_reader.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: parquet_common.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: descriptors.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Unexecuted instantiation: point_query_executor.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ |
309 | | |
310 | | template <class T> |
311 | 0 | static size_t find_byte(const T* data, size_t start, size_t end, T byte) { |
312 | 0 | if (start >= end) { |
313 | 0 | return start; |
314 | 0 | } |
315 | 0 | const void* p = std::memchr((const void*)(data + start), byte, end - start); |
316 | 0 | if (p == nullptr) { |
317 | 0 | return end; |
318 | 0 | } |
319 | 0 | return (T*)p - data; |
320 | 0 | } Unexecuted instantiation: unity_14_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_0_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_4_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_1_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: column_vector.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_5_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_12_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_8_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_9_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_10_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_11_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_7_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_6_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_3_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_2_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: hashjoin_build_sink.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: join_build_sink_operator.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: operator.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: partitioned_aggregation_sink_operator.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: scan_operator.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: vfile_result_writer.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_32_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_30_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_28_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_27_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_26_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_25_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_24_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_22_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_21_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_20_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_19_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_18_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_17_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_16_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: unity_15_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: ai_functions.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: function_date_or_datetime_computation.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: function_datetime_floor_ceil.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: uuid.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: vorc_reader.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: vparquet_reader.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: parquet_common.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: descriptors.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ Unexecuted instantiation: point_query_executor.cpp:_ZN5doris4simdL9find_byteIhEEmPKT_mmS2_ |
321 | | |
322 | 329k | inline size_t find_one(const std::vector<uint8_t>& vec, size_t start) { |
323 | 329k | return find_byte<uint8_t>(vec, start, 1); |
324 | 329k | } |
325 | | |
326 | 333 | inline size_t find_one(const uint8_t* data, size_t start, size_t end) { |
327 | 333 | return find_byte<uint8_t>(data, start, end, 1); |
328 | 333 | } |
329 | | |
330 | 345k | inline size_t find_zero(const std::vector<uint8_t>& vec, size_t start) { |
331 | 345k | return find_byte<uint8_t>(vec, start, 0); |
332 | 345k | } |
333 | | |
334 | 1.43M | inline bool contain_one(const uint8_t* __restrict data, size_t size) { |
335 | 1.43M | size_t i = 0; |
336 | 1.43M | #if defined(__AVX2__) |
337 | 17.3M | for (; i + 32 <= size; i += 32) { |
338 | 16.2M | __m256i chunk = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(data + i)); |
339 | 16.2M | if (!_mm256_testz_si256(chunk, chunk)) { |
340 | 342k | return true; |
341 | 342k | } |
342 | 16.2M | } |
343 | | #elif defined(__SSE2__) |
344 | | const __m128i zero = _mm_setzero_si128(); |
345 | | for (; i + 16 <= size; i += 16) { |
346 | | __m128i chunk = _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i)); |
347 | | if (_mm_movemask_epi8(_mm_cmpeq_epi8(chunk, zero)) != 0xFFFF) { |
348 | | return true; |
349 | | } |
350 | | } |
351 | | #elif defined(__ARM_NEON) && defined(__aarch64__) |
352 | | for (; i + 16 <= size; i += 16) { |
353 | | if (vmaxvq_u8(vld1q_u8(data + i)) != 0) { |
354 | | return true; |
355 | | } |
356 | | } |
357 | | #endif |
358 | 6.38M | for (; i < size; ++i) { |
359 | 5.42M | if (data[i]) { |
360 | 134k | return true; |
361 | 134k | } |
362 | 5.42M | } |
363 | 959k | return false; |
364 | 1.09M | } |
365 | | |
366 | 72.0k | inline bool contain_zero(const uint8_t* __restrict data, size_t size) { |
367 | 72.0k | size_t i = 0; |
368 | 72.0k | #if defined(__AVX2__) |
369 | 72.0k | const __m256i zero = _mm256_setzero_si256(); |
370 | 345k | for (; i + 32 <= size; i += 32) { |
371 | 277k | __m256i chunk = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(data + i)); |
372 | 277k | if (_mm256_movemask_epi8(_mm256_cmpeq_epi8(chunk, zero)) != 0) { |
373 | 4.26k | return true; |
374 | 4.26k | } |
375 | 277k | } |
376 | | #elif defined(__SSE2__) |
377 | | const __m128i zero = _mm_setzero_si128(); |
378 | | for (; i + 16 <= size; i += 16) { |
379 | | __m128i chunk = _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i)); |
380 | | if (_mm_movemask_epi8(_mm_cmpeq_epi8(chunk, zero)) != 0) { |
381 | | return true; |
382 | | } |
383 | | } |
384 | | #elif defined(__ARM_NEON) && defined(__aarch64__) |
385 | | for (; i + 16 <= size; i += 16) { |
386 | | if (vminvq_u8(vld1q_u8(data + i)) == 0) { |
387 | | return true; |
388 | | } |
389 | | } |
390 | | #endif |
391 | 159k | for (; i < size; ++i) { |
392 | 134k | if (!data[i]) { |
393 | 42.8k | return true; |
394 | 42.8k | } |
395 | 134k | } |
396 | 24.8k | return false; |
397 | 67.7k | } |
398 | | |
399 | | } // namespace doris::simd |