diff options
| author | bjorn3 <bjorn3@users.noreply.github.com> | 2019-08-16 16:04:50 +0200 |
|---|---|---|
| committer | bjorn3 <bjorn3@users.noreply.github.com> | 2019-08-16 16:04:50 +0200 |
| commit | 2558bf2f6bd5e74861d7db760f689b3b01bcc618 (patch) | |
| tree | d9726d4a7f92a13246af0703269f74a3663c3032 /example | |
| parent | 6bf47ad0d42ebf756518584fe45fd081f3eba7c3 (diff) | |
| download | rust-2558bf2f6bd5e74861d7db760f689b3b01bcc618.tar.gz rust-2558bf2f6bd5e74861d7db760f689b3b01bcc618.zip | |
Workaround for missing `#[rustc_args_required_const(..)]` support
cc #666
Diffstat (limited to 'example')
| -rw-r--r-- | example/std_example.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/example/std_example.rs b/example/std_example.rs index 7819881b69b..61182a49b9c 100644 --- a/example/std_example.rs +++ b/example/std_example.rs @@ -75,6 +75,9 @@ unsafe fn test_simd() { test_mm_cvtepi8_epi16(); test_mm_cvtsi128_si64(); + // FIXME(#666) implement `#[rustc_arg_required_const(..)]` support + //test_mm_extract_epi8(); + let mask1 = _mm_movemask_epi8(dbg!(_mm_setr_epi8(255u8 as i8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))); assert_eq!(mask1, 1); } @@ -194,6 +197,19 @@ unsafe fn test_mm_cvtepi8_epi16() { assert_eq_m128i(r, e); } +#[target_feature(enable = "sse4.1")] +unsafe fn test_mm_extract_epi8() { + #[rustfmt::skip] + let a = _mm_setr_epi8( + -1, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15 + ); + let r1 = _mm_extract_epi8(a, 0); + let r2 = _mm_extract_epi8(a, 19); + assert_eq!(r1, 0xFF); + assert_eq!(r2, 3); +} + #[derive(PartialEq)] enum LoopState { Continue(()), |
