rust-lang / portable-simd

The testing ground for the future of portable SIMD in Rust
Apache License 2.0
897 stars 81 forks source link

Missing compiler intrinsics #46

Open calebzulawski opened 3 years ago

calebzulawski commented 3 years ago

I think it would be helpful to collect a list of all compiler intrinsics (the extern "platform-intrinsics" ones) that need to be added.

workingjubilee commented 3 years ago

On one hand, logically there isn't any reason it should yield the same results, as integers are simpler types. On the other hand, https://github.com/rust-lang/stdsimd/issues/97 still gives me the heebie-jeebies about adding simd_abs as an intrinsic.

What would simd_lt_packed be equivalent to?

calebzulawski commented 3 years ago

I think I previously decided (but never updated this issue) that we don't need an intrinsics for operating on packed bit masks. I think we only need two intrinsics, one for sign extending a packed bit mask to a full width mask, and one for truncating a full width mask to a bit mask.

calebzulawski commented 3 years ago

Actually, looking at the rustc codegen, I think simd_bitmask might be the truncation I'm talking about.