#simd #wide #lokathor

no-std libafl_wide

A crate to help you go wide, but for libafl

1 unstable release

0.7.33 May 26, 2025

#775 in Hardware support

Download history 2671/week @ 2025-06-12 1251/week @ 2025-06-19 898/week @ 2025-06-26 2821/week @ 2025-07-03 2115/week @ 2025-07-10 2568/week @ 2025-07-17 3956/week @ 2025-07-24 2689/week @ 2025-07-31 2914/week @ 2025-08-07 2074/week @ 2025-08-14 2503/week @ 2025-08-21 1984/week @ 2025-08-28 1411/week @ 2025-09-04 2520/week @ 2025-09-11 2174/week @ 2025-09-18 2464/week @ 2025-09-25

9,320 downloads per month
Used in 2 crates (via libafl_bolts)

Zlib OR Apache-2.0 OR MIT

505KB
15K SLoC

A crate to help you go wide.

This crate provides SIMD-compatible data types.

When possible, explicit SIMD is used with all the math operations here. As a fallback, the fact that all the lengths of a fixed length array are doing the same thing will often make LLVM notice that it should use SIMD instructions to complete the task. In the worst case, the code just becomes totally scalar (though the math is still correct, at least).

Crate Features

  • std: This causes the feature to link to std.
    • Currently this just improves the performance of sqrt when an explicit SIMD sqrt isn't available.

License:Zlib Minimum Rust Version crates.io docs.rs

libafl_wide

A crate to help you go wide, but released for libafl. Forked from https://github.com/Lokathor/wide and should be replace once they release next version.

Specifically, this has portable "wide" data types that do their best to be SIMD when possible.

On x86, x86_64, wasm32 and aarch64 neon this is done with explicit intrinsic usage (via safe_arch), and on other architectures this is done by carefully writing functions so that LLVM hopefully does the right thing. When Rust stabilizes more explicit intrinsics then they can go into safe_arch and then they can get used here.

Dependencies

~1MB
~14K SLoC