Lines Matching full:current
8 u32 skim(const u64 *virgin, const u64 *current, const u64 *current_end);
77 inline void discover_word(u8 *ret, u64 *current, u64 *virgin) { in discover_word() argument
79 /* Optimize for (*current & *virgin) == 0 - i.e., no bits in current bitmap in discover_word()
83 if (*current & *virgin) { in discover_word()
87 u8 *cur = (u8 *)current; in discover_word()
91 bytes in current[] are pristine in virgin[]. */ in discover_word()
103 *virgin &= ~*current; in discover_word()
111 inline u32 skim(const u64 *virgin, const u64 *current, const u64 *current_end) { in skim() argument
113 for (; current != current_end; virgin += 8, current += 8) { in skim()
115 __m512i value = *(__m512i *)current; in skim()
123 if (unlikely(!(mask & (1 << x)) && classify_word(current[x]) & virgin[x])) \ in skim()
145 inline u32 skim(const u64 *virgin, const u64 *current, const u64 *current_end) { in skim() argument
149 for (; current < current_end; virgin += 4, current += 4) { in skim()
151 __m256i value = *(__m256i *)current; in skim()
159 if (unlikely(!(mask & 0xff) && classify_word(current[0]) & virgin[0])) in skim()
161 if (unlikely(!(mask & 0xff00) && classify_word(current[1]) & virgin[1])) in skim()
163 if (unlikely(!(mask & 0xff0000) && classify_word(current[2]) & virgin[2])) in skim()
165 if (unlikely(!(mask & 0xff000000) && classify_word(current[3]) & virgin[3])) in skim()
178 inline u32 skim(const u64 *virgin, const u64 *current, const u64 *current_end) { in skim() argument
180 for (; current < current_end; virgin += 4, current += 4) { in skim()
182 if (unlikely(current[0] && classify_word(current[0]) & virgin[0])) return 1; in skim()
183 if (unlikely(current[1] && classify_word(current[1]) & virgin[1])) return 1; in skim()
184 if (unlikely(current[2] && classify_word(current[2]) & virgin[2])) return 1; in skim()
185 if (unlikely(current[3] && classify_word(current[3]) & virgin[3])) return 1; in skim()