bitintr 0.2.0

Portable Bit Manipulation Intrinsics.
Documentation

Portable Bitwise Manipulation Intrinsics

crates.io version Travis build status Coveralls.io code coverage Docs License

0b0000_0010_1001_1010

This library exposes safe and _portable low-level bit manipulation instruction set architectures. It is #![no_std] but requires the core::{intrinsics, arch} components when compiled with nightly rust.

For higher-level bitwise manipulations check the bitwise crate.

This library compiles on stable Rust, but provides an unstable crate feature that makes uses of the following nightly features:

  • cfg_target_feature for target-feature dependent behavior,
  • stdsimd: for core::arch intrinsics,
  • core_intrinsics: for core::intrinsics.

The intrinsics are exposed via traits named after their CPU instruction. These traits are implemented for all integer types except u128/i128.

The following ISAs are implemented:

The actual code generated depends on the integer types involved and the features supported by the target architecture.

Verified assembly

The check_asm.py script verifies the generated assembly of the intrinsics. It compiles the asm/arch_feature_*.rs for the appropriate architectures and target features and compares the assembly generated by rustc with that included in the corresponding asm/arch_feature_*.asm files.

License

Licensed under the MIT license.

Contribution

Yes please! Just note that all contributions shall be licensed as above without any additional terms or conditions.