Implement AVX512_FP16 by sayantn · Pull Request #1605 · rust-lang/stdarch (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation7 Commits11 Checks30 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
This PR adds the AVX512_FP16 intrinsics in Rust. These intrinsics will be behind the feature gate #[feature(stdarch_x86_avx512_f16)]
(rust-lang/rust#127213).
Progress:
- Set intrinsics
- Arithmetic operations (Add-Sub-Mul-Div on Real numbers)
- FMA
- Cast
- Compare
- Convert
- Math (Reciprocal, Sqrt, RSqrt, Max, Min, Reduce)
- FP-Support (FPClass,
getexp
,getmant
,scale
) - Load-Store
- Complex number operations (mul-cmul-conj on Complex numbers)
- AVX-NE-CONVERT
This also adds some missing inlining in avx512ifma
and updates the x86-intel.xml
file to v3.6.9
The set1_pch
intrinsics were not implemented due to a lack of complex number type.cmpph
and fpclassph
intrinsics use inline asm because of no i1
support yet.
r? @Amanieu
rustbot has assigned @Amanieu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r?
to explicitly pick a reviewer
Have you run into any weird behavior with these, or do things seem to be working smoothly? (ignoring the ABI issue for system function calls, that is)
No problems yet, just that simd_fabs
doesn't accept a f16
argument, so i will just use an and operation. I am actively avoiding doing f16 operations in rust, but that's not a blocker for sure.
sayantn marked this pull request as ready for review
Add-Sub-Mul-Div, Load-Store-Move, comi
, set
Reciprocal, RSqrt, Sqrt, Max, Min
getexp
, getmant
, roundscale
, scalef
, reduce
cmpph
, fpclass
, reduce, blend
, permutex
Add #[inline]
to avx512ifma intrinsics
Fix the test equality.
Remove the stability attributes in simd types and test functions