x86: use intrinsics::simd for masked truncating stores#2030
x86: use intrinsics::simd for masked truncating stores#2030okaneco wants to merge 1 commit intorust-lang:mainfrom
intrinsics::simd for masked truncating stores#2030Conversation
Use intrinsics for `_mask_cvt` truncating-cast, unaligned stores Note, 2 of the 15 stores were omitted for failing instruction tests: - avx512f::_mm512_mask_cvtepi32_storeu_epi16 - avx512f::_mm512_mask_cvtepi32_storeu_epi8
|
r? @Amanieu rustbot has assigned @Amanieu. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
These were the 2 instruction tests that failed locally for me on this PR. Failed _mm512 intrinsicsI was also looking into a PR for the unsigned and signed saturating AVX-512F intrinsics but 4 out of the 10 tests failed for just 128-bit intrinsics. Seems like there are gaps in LLVM coverage for 64->32-bit conversions and 32->8/16-bit conversions. Failed signed/unsigned saturation tests for _mm-sized (128-bit) intrinsics |
|
Neat. For the failures, can you make a godbolt displaying the problem (as a template, I was just working on https://godbolt.org/z/5TPT84T4z). I've had decent luck either reporting or fixing this sort of problem in LLVM. |
|
Filed upstream - llvm/llvm-project#182034 Thanks, your template came in very handy. This is what I ended up with - https://rust.godbolt.org/z/8PE81Thds |
Use intrinsics for
_mask_cvttruncating-cast, unaligned stores2 of the 15 stores were omitted for failing instruction tests: