#llvm #workaround #bad #codegen #boolean #arm #32-bit

nightly any_all_workaround

Workaround for bad LLVM codegen for boolean reductions on 32-bit ARM

1 unstable release

0.1.0 Apr 9, 2024

#455 in Programming languages

Download history 260/week @ 2024-04-08 569/week @ 2024-04-15 17/week @ 2024-04-22 436/week @ 2024-04-29 137/week @ 2024-05-06

1,169 downloads per month
Used in 6 crates (via encoding_rs)


91 lines


This is a workaround for bad codegen (Rust bug, LLVM bug) for the any() and all() reductions for NEON-backed SIMD vectors on 32-bit ARM. On other platforms these delegate to any() and all() in core::simd.

The plan is to abandon this crate once the LLVM bug is fixed or core::simd works around the LLVM bug.

The code is forked from the packed_simd crate.

This crate requires Nightly Rust as it depends on the portable_simd feature.


MIT OR Apache-2.0, since that's how packed_simd is licensed.