rust/src/test/ui/simd-intrinsic
bors 095b44c83b Auto merge of #57269 - gnzlbg:simd_bitmask, r=rkruppe
Add intrinsic to create an integer bitmask from a vector mask

This PR adds a new simd intrinsic: `simd_bitmask(vector) -> unsigned integer` that creates an integer bitmask from a vector mask by extracting one bit of each vector lane.

This is required to implement: https://github.com/rust-lang-nursery/packed_simd/issues/166 .

EDIT: the reason we need an intrinsics for this is that we have to truncate the vector lanes to an `<i1 x N>` vector, and then bitcast that to an `iN` integer (while making sure that we only materialize `i8`, ... , `i64` - that is, no `i1`, `i2`, `i4`, types), and we can't do any of that in a Rust library.

r? @rkruppe
2019-01-24 13:11:06 +00:00
..
simd-intrinsic-generic-arithmetic.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-arithmetic.stderr Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-bitmask.rs Add intrinsic to create an integer bitmask from the MSB of integer vectors 2019-01-22 09:39:09 +01:00
simd-intrinsic-generic-bitmask.stderr Add intrinsic to create an integer bitmask from the MSB of integer vectors 2019-01-22 09:39:09 +01:00
simd-intrinsic-generic-cast.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-cast.stderr Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-comparison.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-comparison.stderr Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-elements.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-elements.stderr Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-reduction.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-reduction.stderr Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-select.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-select.stderr Remove licenses 2018-12-25 21:08:33 -07:00