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 | 10.8M | inline uint32_t bytes32_mask_to_bits32_mask(const uint8_t* data) { |
70 | 10.8M | #ifdef __AVX2__ |
71 | 10.8M | auto zero32 = _mm256_setzero_si256(); |
72 | 10.8M | auto mask = static_cast<uint32_t>(_mm256_movemask_epi8( |
73 | 10.8M | _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 | 10.8M | return mask; |
90 | 10.8M | } |
91 | | |
92 | 10.8M | 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 | 10.8M | return bytes32_mask_to_bits32_mask(data); |
97 | 10.8M | #endif |
98 | 10.8M | } |
99 | | |
100 | 6.90M | inline constexpr auto bits_mask_all() { |
101 | | #if defined(__ARM_NEON) && defined(__aarch64__) |
102 | | return 0xffff'ffff'ffff'ffffULL; |
103 | | #else |
104 | 6.90M | return 0xffffffff; |
105 | 6.90M | #endif |
106 | 6.90M | } |
107 | | |
108 | | template <typename Func> |
109 | 2.44M | 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 | 30.7M | while (mask) { |
120 | 28.3M | const auto bit_pos = __builtin_ctzll(mask); |
121 | 28.3M | func(bit_pos); |
122 | 28.3M | mask = mask & (mask - 1); |
123 | 28.3M | } |
124 | 2.44M | #endif |
125 | 2.44M | } _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 | 388 | 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.09k | while (mask) { | 120 | 5.70k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 5.70k | func(bit_pos); | 122 | 5.70k | mask = mask & (mask - 1); | 123 | 5.70k | } | 124 | 388 | #endif | 125 | 388 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE29EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 3.37k | 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.5k | while (mask) { | 120 | 18.1k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 18.1k | func(bit_pos); | 122 | 18.1k | mask = mask & (mask - 1); | 123 | 18.1k | } | 124 | 3.37k | #endif | 125 | 3.37k | } |
_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 | 392 | 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.33k | while (mask) { | 120 | 8.94k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 8.94k | func(bit_pos); | 122 | 8.94k | mask = mask & (mask - 1); | 123 | 8.94k | } | 124 | 392 | #endif | 125 | 392 | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_13ColumnDecimalILNS_13PrimitiveTypeE30EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 15.9k | 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 | 155k | while (mask) { | 120 | 139k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 139k | func(bit_pos); | 122 | 139k | mask = mask & (mask - 1); | 123 | 139k | } | 124 | 15.9k | #endif | 125 | 15.9k | } |
_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 | 48.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 | 341k | while (mask) { | 120 | 292k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 292k | func(bit_pos); | 122 | 292k | mask = mask & (mask - 1); | 123 | 292k | } | 124 | 48.6k | #endif | 125 | 48.6k | } |
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 | 90.3k | 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 | 633k | while (mask) { | 120 | 543k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 543k | func(bit_pos); | 122 | 543k | mask = mask & (mask - 1); | 123 | 543k | } | 124 | 90.3k | #endif | 125 | 90.3k | } |
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 | 4.02k | 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 | 26.8k | while (mask) { | 120 | 22.8k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 22.8k | func(bit_pos); | 122 | 22.8k | mask = mask & (mask - 1); | 123 | 22.8k | } | 124 | 4.02k | #endif | 125 | 4.02k | } |
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 | 573 | 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 | 573 | #endif | 125 | 573 | } |
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 | 8 | 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 | 103 | while (mask) { | 120 | 95 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 95 | func(bit_pos); | 122 | 95 | mask = mask & (mask - 1); | 123 | 95 | } | 124 | 8 | #endif | 125 | 8 | } |
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 | 1.12k | 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.71k | while (mask) { | 120 | 3.59k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3.59k | func(bit_pos); | 122 | 3.59k | mask = mask & (mask - 1); | 123 | 3.59k | } | 124 | 1.12k | #endif | 125 | 1.12k | } |
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 | 213k | 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.96M | while (mask) { | 120 | 1.75M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 1.75M | func(bit_pos); | 122 | 1.75M | mask = mask & (mask - 1); | 123 | 1.75M | } | 124 | 213k | #endif | 125 | 213k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE2EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 361k | 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.23M | while (mask) { | 120 | 3.87M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3.87M | func(bit_pos); | 122 | 3.87M | mask = mask & (mask - 1); | 123 | 3.87M | } | 124 | 361k | #endif | 125 | 361k | } |
_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 | 21.9k | 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 | 276k | while (mask) { | 120 | 254k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 254k | func(bit_pos); | 122 | 254k | mask = mask & (mask - 1); | 123 | 254k | } | 124 | 21.9k | #endif | 125 | 21.9k | } |
_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.88k | 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.9k | while (mask) { | 120 | 28.1k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 28.1k | func(bit_pos); | 122 | 28.1k | mask = mask & (mask - 1); | 123 | 28.1k | } | 124 | 1.88k | #endif | 125 | 1.88k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE5EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 4.12k | 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 | 47.7k | while (mask) { | 120 | 43.6k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 43.6k | func(bit_pos); | 122 | 43.6k | mask = mask & (mask - 1); | 123 | 43.6k | } | 124 | 4.12k | #endif | 125 | 4.12k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE5EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 33.3k | 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 | 462k | while (mask) { | 120 | 428k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 428k | func(bit_pos); | 122 | 428k | mask = mask & (mask - 1); | 123 | 428k | } | 124 | 33.3k | #endif | 125 | 33.3k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE6EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 45.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 | 207k | while (mask) { | 120 | 162k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 162k | func(bit_pos); | 122 | 162k | mask = mask & (mask - 1); | 123 | 162k | } | 124 | 45.5k | #endif | 125 | 45.5k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE6EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 37.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 | 272k | while (mask) { | 120 | 234k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 234k | func(bit_pos); | 122 | 234k | mask = mask & (mask - 1); | 123 | 234k | } | 124 | 37.6k | #endif | 125 | 37.6k | } |
_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 | 10.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 | 52.9k | while (mask) { | 120 | 42.3k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 42.3k | func(bit_pos); | 122 | 42.3k | mask = mask & (mask - 1); | 123 | 42.3k | } | 124 | 10.5k | #endif | 125 | 10.5k | } |
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.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 | 7.06k | while (mask) { | 120 | 4.36k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 4.36k | func(bit_pos); | 122 | 4.36k | mask = mask & (mask - 1); | 123 | 4.36k | } | 124 | 2.70k | #endif | 125 | 2.70k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNKS_12ColumnVectorILNS_13PrimitiveTypeE9EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElEUlmE_EEvT_j Line | Count | Source | 109 | 11.7k | 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 | 34.8k | while (mask) { | 120 | 23.1k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 23.1k | func(bit_pos); | 122 | 23.1k | mask = mask & (mask - 1); | 123 | 23.1k | } | 124 | 11.7k | #endif | 125 | 11.7k | } |
_ZN5doris4simd25iterate_through_bits_maskIZNS_12ColumnVectorILNS_13PrimitiveTypeE9EE6filterERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlmE_EEvT_j Line | Count | Source | 109 | 15.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 | 72.1k | while (mask) { | 120 | 57.1k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 57.1k | func(bit_pos); | 122 | 57.1k | mask = mask & (mask - 1); | 123 | 57.1k | } | 124 | 15.0k | #endif | 125 | 15.0k | } |
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 | 7.69k | 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 | 96.1k | while (mask) { | 120 | 88.4k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 88.4k | func(bit_pos); | 122 | 88.4k | mask = mask & (mask - 1); | 123 | 88.4k | } | 124 | 7.69k | #endif | 125 | 7.69k | } |
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 | 480 | 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 | 999 | while (mask) { | 120 | 519 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 519 | func(bit_pos); | 122 | 519 | mask = mask & (mask - 1); | 123 | 519 | } | 124 | 480 | #endif | 125 | 480 | } |
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 | 302k | 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.05M | while (mask) { | 120 | 5.75M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 5.75M | func(bit_pos); | 122 | 5.75M | mask = mask & (mask - 1); | 123 | 5.75M | } | 124 | 302k | #endif | 125 | 302k | } |
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 | 558 | 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.19k | while (mask) { | 120 | 632 | const auto bit_pos = __builtin_ctzll(mask); | 121 | 632 | func(bit_pos); | 122 | 632 | mask = mask & (mask - 1); | 123 | 632 | } | 124 | 558 | #endif | 125 | 558 | } |
_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 | 69.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 | 1.79M | while (mask) { | 120 | 1.72M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 1.72M | func(bit_pos); | 122 | 1.72M | mask = mask & (mask - 1); | 123 | 1.72M | } | 124 | 69.2k | #endif | 125 | 69.2k | } |
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 | 1.87k | 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 | 11.7k | while (mask) { | 120 | 9.85k | const auto bit_pos = __builtin_ctzll(mask); | 121 | 9.85k | func(bit_pos); | 122 | 9.85k | mask = mask & (mask - 1); | 123 | 9.85k | } | 124 | 1.87k | #endif | 125 | 1.87k | } |
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 | 903k | 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.91M | while (mask) { | 120 | 9.00M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 9.00M | func(bit_pos); | 122 | 9.00M | mask = mask & (mask - 1); | 123 | 9.00M | } | 124 | 903k | #endif | 125 | 903k | } |
unity_22_cxx.cxx:_ZN5doris4simd25iterate_through_bits_maskIZNS_10segment_v215SegmentIterator28_evaluate_common_expr_filterEPttRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEE3$_0EEvT_j Line | Count | Source | 109 | 235k | 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.00M | while (mask) { | 120 | 3.77M | const auto bit_pos = __builtin_ctzll(mask); | 121 | 3.77M | func(bit_pos); | 122 | 3.77M | mask = mask & (mask - 1); | 123 | 3.77M | } | 124 | 235k | #endif | 125 | 235k | } |
|
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 | 8.98k | size_t size, const uint8_t* __restrict null_map = nullptr) { |
137 | 8.98k | FilterCounts counts; |
138 | 8.98k | size_t i = 0; |
139 | 8.98k | #if defined(__SSE2__) || defined(__aarch64__) |
140 | 8.98k | const __m128i zero = _mm_setzero_si128(); |
141 | 8.98k | __m128i input_sum = zero; |
142 | 8.98k | __m128i output_sum = zero; |
143 | 8.98k | const size_t vector_size = size / 64 * 64; |
144 | 187k | for (; i < vector_size; i += 64) { |
145 | 178k | __m128i input_zeros = zero; |
146 | 178k | __m128i output_zeros = zero; |
147 | 890k | for (size_t offset = 0; offset < 64; offset += 16) { |
148 | 712k | const auto before = |
149 | 712k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); |
150 | 712k | const auto filter_values = |
151 | 712k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); |
152 | 712k | auto after = _mm_and_si128(before, filter_values); |
153 | 712k | if constexpr (nullable) { |
154 | 392k | const auto nulls = |
155 | 392k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + i + offset)); |
156 | 392k | const auto valid = _mm_and_si128(_mm_cmpeq_epi8(nulls, zero), _mm_set1_epi8(1)); |
157 | 392k | after = _mm_and_si128(after, valid); |
158 | 392k | } |
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 | 712k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); |
162 | 712k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); |
163 | 712k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); |
164 | 712k | } |
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 | 8.98k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( |
169 | 8.98k | input_sum, _mm_srli_si128(input_sum, 8)))); |
170 | 8.98k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( |
171 | 8.98k | output_sum, _mm_srli_si128(output_sum, 8)))); |
172 | 8.98k | #endif |
173 | 165k | for (; i < size; ++i) { |
174 | 156k | const uint8_t before = data[i]; |
175 | 156k | uint8_t after = before & filter[i]; |
176 | 156k | if constexpr (nullable) { |
177 | 82.1k | after &= !null_map[i]; |
178 | 82.1k | } |
179 | 156k | counts.input_rows += before != 0; |
180 | 156k | counts.output_rows += after != 0; |
181 | 156k | data[i] = after; |
182 | 156k | } |
183 | 8.98k | return counts; |
184 | 8.98k | } _ZN5doris4simd16filter_and_countILb1EEENS0_12FilterCountsEPhPKhmS5_ Line | Count | Source | 136 | 5.05k | size_t size, const uint8_t* __restrict null_map = nullptr) { | 137 | 5.05k | FilterCounts counts; | 138 | 5.05k | size_t i = 0; | 139 | 5.05k | #if defined(__SSE2__) || defined(__aarch64__) | 140 | 5.05k | const __m128i zero = _mm_setzero_si128(); | 141 | 5.05k | __m128i input_sum = zero; | 142 | 5.05k | __m128i output_sum = zero; | 143 | 5.05k | const size_t vector_size = size / 64 * 64; | 144 | 103k | for (; i < vector_size; i += 64) { | 145 | 98.3k | __m128i input_zeros = zero; | 146 | 98.3k | __m128i output_zeros = zero; | 147 | 491k | for (size_t offset = 0; offset < 64; offset += 16) { | 148 | 392k | const auto before = | 149 | 392k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); | 150 | 392k | const auto filter_values = | 151 | 392k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); | 152 | 392k | auto after = _mm_and_si128(before, filter_values); | 153 | 392k | if constexpr (nullable) { | 154 | 392k | const auto nulls = | 155 | 392k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + i + offset)); | 156 | 392k | const auto valid = _mm_and_si128(_mm_cmpeq_epi8(nulls, zero), _mm_set1_epi8(1)); | 157 | 392k | after = _mm_and_si128(after, valid); | 158 | 392k | } | 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 | 392k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); | 162 | 392k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); | 163 | 392k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); | 164 | 392k | } | 165 | 98.3k | input_sum = _mm_add_epi64(input_sum, _mm_sad_epu8(input_zeros, zero)); | 166 | 98.3k | output_sum = _mm_add_epi64(output_sum, _mm_sad_epu8(output_zeros, zero)); | 167 | 98.3k | } | 168 | 5.05k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 169 | 5.05k | input_sum, _mm_srli_si128(input_sum, 8)))); | 170 | 5.05k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 171 | 5.05k | output_sum, _mm_srli_si128(output_sum, 8)))); | 172 | 5.05k | #endif | 173 | 87.2k | for (; i < size; ++i) { | 174 | 82.1k | const uint8_t before = data[i]; | 175 | 82.1k | uint8_t after = before & filter[i]; | 176 | 82.1k | if constexpr (nullable) { | 177 | 82.1k | after &= !null_map[i]; | 178 | 82.1k | } | 179 | 82.1k | counts.input_rows += before != 0; | 180 | 82.1k | counts.output_rows += after != 0; | 181 | 82.1k | data[i] = after; | 182 | 82.1k | } | 183 | 5.05k | return counts; | 184 | 5.05k | } |
_ZN5doris4simd16filter_and_countILb0EEENS0_12FilterCountsEPhPKhmS5_ Line | Count | Source | 136 | 3.93k | size_t size, const uint8_t* __restrict null_map = nullptr) { | 137 | 3.93k | FilterCounts counts; | 138 | 3.93k | size_t i = 0; | 139 | 3.93k | #if defined(__SSE2__) || defined(__aarch64__) | 140 | 3.93k | const __m128i zero = _mm_setzero_si128(); | 141 | 3.93k | __m128i input_sum = zero; | 142 | 3.93k | __m128i output_sum = zero; | 143 | 3.93k | const size_t vector_size = size / 64 * 64; | 144 | 83.7k | for (; i < vector_size; i += 64) { | 145 | 79.7k | __m128i input_zeros = zero; | 146 | 79.7k | __m128i output_zeros = zero; | 147 | 398k | for (size_t offset = 0; offset < 64; offset += 16) { | 148 | 319k | const auto before = | 149 | 319k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + i + offset)); | 150 | 319k | const auto filter_values = | 151 | 319k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(filter + i + offset)); | 152 | 319k | 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 | 319k | input_zeros = _mm_sub_epi8(input_zeros, _mm_cmpeq_epi8(before, zero)); | 162 | 319k | output_zeros = _mm_sub_epi8(output_zeros, _mm_cmpeq_epi8(after, zero)); | 163 | 319k | _mm_storeu_si128(reinterpret_cast<__m128i*>(data + i + offset), after); | 164 | 319k | } | 165 | 79.7k | input_sum = _mm_add_epi64(input_sum, _mm_sad_epu8(input_zeros, zero)); | 166 | 79.7k | output_sum = _mm_add_epi64(output_sum, _mm_sad_epu8(output_zeros, zero)); | 167 | 79.7k | } | 168 | 3.93k | counts.input_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 169 | 3.93k | input_sum, _mm_srli_si128(input_sum, 8)))); | 170 | 3.93k | counts.output_rows = vector_size - static_cast<size_t>(_mm_cvtsi128_si64(_mm_add_epi64( | 171 | 3.93k | output_sum, _mm_srli_si128(output_sum, 8)))); | 172 | 3.93k | #endif | 173 | 78.6k | for (; i < size; ++i) { | 174 | 74.6k | const uint8_t before = data[i]; | 175 | 74.6k | uint8_t after = before & filter[i]; | 176 | | if constexpr (nullable) { | 177 | | after &= !null_map[i]; | 178 | | } | 179 | 74.6k | counts.input_rows += before != 0; | 180 | 74.6k | counts.output_rows += after != 0; | 181 | 74.6k | data[i] = after; | 182 | 74.6k | } | 183 | 3.93k | return counts; | 184 | 3.93k | } |
|
185 | | |
186 | | template <typename T> |
187 | | requires requires { std::is_unsigned_v<T>; } |
188 | 4.25M | inline T count_zero_num(const int8_t* __restrict data, T size) { |
189 | 4.25M | T num = 0; |
190 | 4.25M | 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 | 4.25M | const int8_t* end64 = data + (size / 64 * 64); |
208 | | |
209 | 10.5M | for (; data < end64; data += 64) { |
210 | 6.30M | num += __builtin_popcountll( |
211 | 6.30M | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
212 | 6.30M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | |
213 | 6.30M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
214 | 6.30M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) |
215 | 6.30M | << 16U) | |
216 | 6.30M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
217 | 6.30M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) |
218 | 6.30M | << 32U) | |
219 | 6.30M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( |
220 | 6.30M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) |
221 | 6.30M | << 48U)); |
222 | 6.30M | } |
223 | 4.25M | #endif |
224 | 16.7M | for (; data < end; ++data) { |
225 | 12.4M | num += (*data == 0); |
226 | 12.4M | } |
227 | 4.25M | return num; |
228 | 4.25M | } _ZN5doris4simd14count_zero_numImQrqXsr3stdE13is_unsigned_vIT_EEEES2_PKaS2_ Line | Count | Source | 188 | 4.21M | inline T count_zero_num(const int8_t* __restrict data, T size) { | 189 | 4.21M | T num = 0; | 190 | 4.21M | 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 | 4.21M | const int8_t* end64 = data + (size / 64 * 64); | 208 | | | 209 | 10.3M | for (; data < end64; data += 64) { | 210 | 6.09M | num += __builtin_popcountll( | 211 | 6.09M | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 212 | 6.09M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | | 213 | 6.09M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 214 | 6.09M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) | 215 | 6.09M | << 16U) | | 216 | 6.09M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 217 | 6.09M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) | 218 | 6.09M | << 32U) | | 219 | 6.09M | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 220 | 6.09M | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) | 221 | 6.09M | << 48U)); | 222 | 6.09M | } | 223 | 4.21M | #endif | 224 | 15.9M | for (; data < end; ++data) { | 225 | 11.7M | num += (*data == 0); | 226 | 11.7M | } | 227 | 4.21M | return num; | 228 | 4.21M | } |
_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 | 38.2k | inline T count_zero_num(const int8_t* __restrict data, T size) { | 189 | 38.2k | T num = 0; | 190 | 38.2k | 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 | 38.2k | const int8_t* end64 = data + (size / 64 * 64); | 208 | | | 209 | 250k | for (; data < end64; data += 64) { | 210 | 212k | num += __builtin_popcountll( | 211 | 212k | static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 212 | 212k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), zero16))) | | 213 | 212k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 214 | 212k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), zero16))) | 215 | 212k | << 16U) | | 216 | 212k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 217 | 212k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), zero16))) | 218 | 212k | << 32U) | | 219 | 212k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_cmpeq_epi8( | 220 | 212k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), zero16))) | 221 | 212k | << 48U)); | 222 | 212k | } | 223 | 38.2k | #endif | 224 | 729k | for (; data < end; ++data) { | 225 | 691k | num += (*data == 0); | 226 | 691k | } | 227 | 38.2k | return num; | 228 | 38.2k | } |
|
229 | | |
230 | | template <typename T> |
231 | | requires requires { std::is_unsigned_v<T>; } |
232 | 4.48k | inline T count_zero_num(const int8_t* __restrict data, const uint8_t* __restrict null_map, T size) { |
233 | 4.48k | T num = 0; |
234 | 4.48k | 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.48k | const __m128i one16 = _mm_set1_epi8(1); |
257 | 4.48k | const int8_t* end64 = data + (size / 64 * 64); |
258 | | |
259 | 15.5k | for (; data < end64; data += 64, null_map += 64) { |
260 | 11.0k | num += __builtin_popcountll( |
261 | 11.0k | static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
262 | 11.0k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(data)), |
263 | 11.0k | zero16), |
264 | 11.0k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map)), |
265 | 11.0k | one16)))) | |
266 | 11.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
267 | 11.0k | _mm_cmpeq_epi8( |
268 | 11.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 16)), |
269 | 11.0k | zero16), |
270 | 11.0k | _mm_cmpeq_epi8( |
271 | 11.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 16)), |
272 | 11.0k | one16)))) |
273 | 11.0k | << 16U) | |
274 | 11.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
275 | 11.0k | _mm_cmpeq_epi8( |
276 | 11.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 32)), |
277 | 11.0k | zero16), |
278 | 11.0k | _mm_cmpeq_epi8( |
279 | 11.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 32)), |
280 | 11.0k | one16)))) |
281 | 11.0k | << 32U) | |
282 | 11.0k | (static_cast<uint64_t>(_mm_movemask_epi8(_mm_or_si128( |
283 | 11.0k | _mm_cmpeq_epi8(_mm_loadu_si128(reinterpret_cast<const __m128i*>(data + 48)), |
284 | 11.0k | zero16), |
285 | 11.0k | _mm_cmpeq_epi8( |
286 | 11.0k | _mm_loadu_si128(reinterpret_cast<const __m128i*>(null_map + 48)), |
287 | 11.0k | one16))))) |
288 | 11.0k | << 48U); |
289 | 11.0k | } |
290 | 4.48k | #endif |
291 | 43.6k | for (; data < end; ++data, ++null_map) { |
292 | 39.1k | num += ((*data == 0) | *null_map); |
293 | 39.1k | } |
294 | 4.48k | return num; |
295 | 4.48k | } |
296 | | |
297 | | // TODO: compare with different SIMD implements |
298 | | template <class T> |
299 | 648k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { |
300 | 648k | if (start >= vec.size()) { |
301 | 18.7k | return start; |
302 | 18.7k | } |
303 | 629k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); |
304 | 629k | if (p == nullptr) { |
305 | 58.4k | return vec.size(); |
306 | 58.4k | } |
307 | 570k | return (T*)p - vec.data(); |
308 | 629k | } unity_14_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 490k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 490k | if (start >= vec.size()) { | 301 | 16.8k | return start; | 302 | 16.8k | } | 303 | 473k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 473k | if (p == nullptr) { | 305 | 55.2k | return vec.size(); | 306 | 55.2k | } | 307 | 418k | return (T*)p - vec.data(); | 308 | 473k | } |
unity_0_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 346 | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 346 | if (start >= vec.size()) { | 301 | 65 | return start; | 302 | 65 | } | 303 | 281 | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 281 | if (p == nullptr) { | 305 | 211 | return vec.size(); | 306 | 211 | } | 307 | 70 | return (T*)p - vec.data(); | 308 | 281 | } |
Unexecuted instantiation: unity_4_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ unity_1_cxx.cxx:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 22.3k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 22.3k | if (start >= vec.size()) { | 301 | 22 | return start; | 302 | 22 | } | 303 | 22.3k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 22.3k | if (p == nullptr) { | 305 | 39 | return vec.size(); | 306 | 39 | } | 307 | 22.2k | return (T*)p - vec.data(); | 308 | 22.3k | } |
column_vector.cpp:_ZN5doris4simdL9find_byteIhEEmRKSt6vectorIT_SaIS3_EEmS3_ Line | Count | Source | 299 | 134k | static size_t find_byte(const std::vector<T>& vec, size_t start, T byte) { | 300 | 134k | if (start >= vec.size()) { | 301 | 1.78k | return start; | 302 | 1.78k | } | 303 | 132k | const void* p = std::memchr((const void*)(vec.data() + start), byte, vec.size() - start); | 304 | 132k | if (p == nullptr) { | 305 | 2.93k | return vec.size(); | 306 | 2.93k | } | 307 | 130k | 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 | 330k | inline size_t find_one(const std::vector<uint8_t>& vec, size_t start) { |
323 | 330k | return find_byte<uint8_t>(vec, start, 1); |
324 | 330k | } |
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.29M | inline bool contain_one(const uint8_t* __restrict data, size_t size) { |
335 | 1.29M | size_t i = 0; |
336 | 1.29M | #if defined(__AVX2__) |
337 | 17.7M | for (; i + 32 <= size; i += 32) { |
338 | 16.7M | __m256i chunk = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(data + i)); |
339 | 16.7M | if (!_mm256_testz_si256(chunk, chunk)) { |
340 | 293k | return true; |
341 | 293k | } |
342 | 16.7M | } |
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 | 5.85M | for (; i < size; ++i) { |
359 | 4.98M | if (data[i]) { |
360 | 136k | return true; |
361 | 136k | } |
362 | 4.98M | } |
363 | 869k | return false; |
364 | 1.00M | } |
365 | | |
366 | 74.5k | inline bool contain_zero(const uint8_t* __restrict data, size_t size) { |
367 | 74.5k | size_t i = 0; |
368 | 74.5k | #if defined(__AVX2__) |
369 | 74.5k | const __m256i zero = _mm256_setzero_si256(); |
370 | 347k | 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.49k | return true; |
374 | 4.49k | } |
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 | 162k | for (; i < size; ++i) { |
392 | 137k | if (!data[i]) { |
393 | 44.9k | return true; |
394 | 44.9k | } |
395 | 137k | } |
396 | 25.1k | return false; |
397 | 70.1k | } |
398 | | |
399 | | } // namespace doris::simd |