Skip to content
Portable Bitwise Manipulation Intrinsics
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
asm
benches
ci
examples
src
.gitignore
.travis.yml
Cargo.toml
bors.toml
check_asm.py
clippy.toml
license.md
readme.md
rustfmt.toml

readme.md

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.

You can’t perform that action at this time.