Skip to main content

none_avx512

Function none_avx512 

Source
pub unsafe fn none_avx512(bits: &[Block]) -> bool
Examples found in repository?
crates/competitive/src/data_structure/bitset.rs (line 186)
178    pub fn none(&self) -> bool {
179        #[cfg(target_arch = "x86_64")]
180        if self.bits.len() >= SIMD_MIN_BLOCKS {
181            if self.bits[0].0[0] != 0 {
182                return false;
183            }
184            if avx512_enabled() && is_x86_feature_detected!("avx512f") {
185                // SAFETY: blocks are 64-byte aligned and feature detection checked AVX-512F.
186                return unsafe { simd::none_avx512(&self.bits) };
187            }
188            if is_x86_feature_detected!("avx2") {
189                // SAFETY: 64-byte alignment also satisfies AVX2 and feature detection checked it.
190                return unsafe { simd::none_avx2(&self.bits) };
191            }
192        }
193        self.words().iter().all(|&word| word == 0)
194    }