#arm #workaround #any-all-workaround

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

#3 in #workaround

Download history 85/week @ 2024-12-11 40/week @ 2024-12-18 9/week @ 2024-12-25 23/week @ 2025-01-01 44/week @ 2025-01-08 79/week @ 2025-01-15 53/week @ 2025-01-22 72/week @ 2025-01-29 66/week @ 2025-02-05 56/week @ 2025-02-12 240/week @ 2025-02-19 73/week @ 2025-02-26 46/week @ 2025-03-05 63/week @ 2025-03-12 55/week @ 2025-03-19 52/week @ 2025-03-26

225 downloads per month
Used in 3 crates (via encoding_rs)

MIT/Apache

7KB
91 lines

any_all_workaround

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.

License

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

Dependencies

~4KB