GitXplorerGitXplorer
e

rust-immintrin

public
4 stars
2 forks
2 issues

Commits

List of commits on branch master.
Unverified
e13011892b2f8b60652193804cc9103ff1338bc0

Bump to version 0.2.

eeefriedman committed 8 years ago
Unverified
42e759795df673386deb9dcc2218e07dd9fe6198

A bunch of SSE2 load instructions.

eeefriedman committed 8 years ago
Unverified
5f3502004c81df67ee4941b9c87cb1de3c81b94f

More SSE2 (almost done except for load/store).

eeefriedman committed 8 years ago
Unverified
3db310429fd6416a898e2e50b4741cce28efcce9

More SSE2, including some shuffles.

eeefriedman committed 8 years ago
Unverified
2e7edc45fedc2170e305392be43d39f008f306d2

Add more SSE2 functions.

eeefriedman committed 8 years ago
Unverified
3dca834cd666c89a6f8144a3bf4286f53909a1f7

Import SIMD intrinsics from simd crate.

eeefriedman committed 9 years ago

README

The README file for this repository.

immintrin

This crate implements the names defined by Intel for SIMD and related instructions on x86 (functions with an _mm_ prefix). These are useful for porting code, and because people are familiar with them. See https://github.com/rust-lang/rfcs/issues/1639 for discussion.

Currently contains signatures for all SSE/SSE2/SSE2/SSSE3 intrinsics. Intrinsics involving MMX and non-temporal stores are not yet implemented; everything else should work. Requires a nightly compiler for SIMD and various unstable intrinsics.

If anyone is looking to improve this crate, probably the most important thing at the moment is some sort of testing infrastructure; currently, this crate has no tests. Not precisely sure what the tests would look like; probably some combination of checking the generated LLVM IR, checking the generated assembly, and runtime tests.

It's not clear whether the signatures for intrinsics which take a constant integer should stay the way they are, or be changed somehow. Currently, we just accept that the parameter might not be constant, and just make sure we generate code which will be optimized well if the parameter is constant (for example, the match statement in _mm_slli_si128 will fold down to a single instruction).

Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. All files in the project carrying such notice may not be copied, modified, or distributed except according to those terms.