Alex Crichton
ba7f62715a
Add assertions correct instructions are generated
...
This commit adds a procedural macro which can be used to test instruction
generation in a lightweight way. The intention is that all functions are
annotated with:
#[cfg_attr(test, assert_instr(maxps))]
fn foo(...) {
// ...
}
and then during `cargo test --release` it'll assert the function `foo` does
indeed generate the instruction `maxps`. This only activates tests in optimized
mode to avoid debug mode inefficiencies, and it uses a literal invocation of
`objdump` and some parsing to figure out what instructions are inside each
function. Finally it also uses the `backtrace` crate to figure out the symbol
name of the relevant function and hook that up to the output of `objdump`.
I added a few assertions in the `sse` module to get some feedback, but curious
what y'all think of this!
2017-09-20 09:57:43 -07:00
Dávid Kocsis
fe5d8f939f
SSE4.1 dot product instructions
2017-09-20 12:35:43 -04:00
Mohan Rajendran
9b96985000
Added _mm_unpackhi_ps function ( #16 )
...
Added _mm_unpackhi_ps
2017-09-20 06:50:06 -04:00
gnzlbg
e64f80e479
[abm] use lzcnt and popcnt features
2017-09-19 17:10:00 -04:00
gnzlbg
08a890a0a0
[tbm] check generated code
2017-09-19 17:10:00 -04:00
gnzlbg
59f6e21751
nitpicks, whitespace, etc
2017-09-19 17:10:00 -04:00
gnzlbg
4f1f53b707
[bmi] check assembly of bmi instructions
2017-09-19 17:10:00 -04:00
gnzlbg
cb1db00983
[abm] check generated assembly
2017-09-19 17:10:00 -04:00
gnzlbg
9483950d3e
[bmi2] check generated assembly
2017-09-19 17:10:00 -04:00
gnzlbg
21091b0d71
[bmi] export all intrinsics
2017-09-19 17:10:00 -04:00
gnzlbg
4446e941ed
[bmi] use llvm intrinsics instead of platform-intrinsic
2017-09-19 17:10:00 -04:00
gnzlbg
5c483e3773
[tbm] adds all tbm intrinsics
2017-09-19 17:10:00 -04:00
gnzlbg
c66003d259
[bmi] add module-level docs to bmi and bmi2 modules
2017-09-19 17:10:00 -04:00
gnzlbg
778d55a0bc
[abm] support popcnt and lzcnt
2017-09-19 17:10:00 -04:00
gnzlbg
bf68b58e6b
[bmi2] implement all bmi2 instructions
2017-09-19 17:10:00 -04:00
gnzlbg
14144a3b38
[bmi] implement all bmi1 intrinsics
2017-09-19 17:10:00 -04:00
gnzlbg
ad5ff722de
run tests only in architectures that support them
2017-09-19 17:10:00 -04:00
Paul Masurel
045f931b1a
Implementing _mm_shuffle_epi8. ( #18 )
...
Implementing `_mm_shuffle_epi8`.
2017-09-19 08:55:21 -04:00
Andrew Gallant
c2af1c3fea
update
2017-09-17 19:02:18 -04:00
Andrew Gallant
46ae8c2afd
add contributing guide
2017-09-17 18:46:43 -04:00
Andrew Gallant
81db783a91
0.0.2
2017-09-17 18:11:04 -04:00
Andrew Gallant
edabaf0763
add doc link
2017-09-17 18:10:48 -04:00
Andrew Gallant
baaa64258b
add scratch
2017-09-17 18:09:04 -04:00
Andrew Gallant
b2ac72c2fa
prepare for publish
2017-09-17 18:08:32 -04:00
Andrew Gallant
8f490e5dff
fix
2017-06-19 18:34:32 -04:00
Andrew Gallant
f04dd91c71
add strange example that fails
2017-06-19 18:31:05 -04:00
Andrew Gallant
e975e22c20
refactor
2017-06-19 17:06:53 -04:00
Alex Crichton
1450e641a5
Add bindings for _mm_blendv_epi8
...
Just wanted to test this out!
2017-06-19 16:15:54 -04:00
Alex Crichton
91a4849bba
Add #[inline] to cast methods
...
Avoids function calls in release builds!
2017-06-19 16:01:03 -04:00
Alex Crichton
da7dc55140
Add fmt::LowerHex to integer simd for debugging
...
Helped me locally at least! Curious what you think.
2017-06-19 16:00:50 -04:00
Jack Mott
90a4379f1a
avx2 lhf complete
2017-06-01 07:26:02 -04:00
Jack Mott
59aa3f75ac
Another batch of AVX2 intrinsics ( #4 )
...
add more avx2 intrinsics
2017-05-29 10:36:08 -04:00
Jack Mott
0b760d7e20
Start on AVX ( #3 )
...
start on avx
2017-05-28 16:08:12 -04:00
Jack Mott
15b8068c8b
Start of AVX2 functions ( #2 )
...
start adding avx2
2017-05-28 15:46:54 -04:00
Andrew Gallant
27e307278a
Add 256-bit vectors and some SSE intrinsics.
2017-03-18 15:21:32 -04:00
Andrew Gallant
df03dc4d80
progress
2017-03-14 15:53:20 -04:00
Andrew Gallant
1203e97ac0
progress
2017-03-13 20:56:22 -04:00
Andrew Gallant
52cb807e6e
progress
2017-03-13 20:42:45 -04:00
Andrew Gallant
440ecbaee7
progress
2017-03-13 20:11:56 -04:00
Andrew Gallant
5bfc38a994
progress
2016-12-28 18:22:09 -05:00
Andrew Gallant
8b27771cc5
progress
2016-12-11 20:35:28 -05:00
Andrew Gallant
c01240299f
progress
2016-12-11 18:26:04 -05:00
Andrew Gallant
f268844dc9
progress
2016-12-02 21:46:58 -05:00
Andrew Gallant
7c2915767e
switch to more typed API
2016-12-01 20:57:33 -05:00
Andrew Gallant
535794f129
progress
2016-11-30 19:35:14 -05:00
Andrew Gallant
a8dc7af480
progress
2016-11-29 01:10:28 -05:00
Andrew Gallant
9873489cee
progress
2016-11-29 01:06:35 -05:00
Andrew Gallant
b5e73d1ed2
progress
2016-11-29 01:06:17 -05:00
Andrew Gallant
1593cf01cd
progress
2016-11-28 12:14:57 -05:00
Andrew Gallant
12121fc2bb
progress
2016-11-27 01:06:39 -05:00