-
Notifications
You must be signed in to change notification settings - Fork 292
Implement AVX512f floating point comparisons #869
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: bjorn3 <[email protected]>
☔ The latest upstream changes (presumably b17efd8) made this pull request unmergeable. Please resolve the merge conflicts. |
d110c09
to
f567b69
Compare
This should be ready for review. There's one remaining rough edge here. If you pass an invalid value to |
It seems that not all values are valid for the |
Done. Thanks! I tried to find where/how the sae parameter was validated, but I struggled to find it. |
crates/core_arch/src/x86/avx512f.rs
Outdated
vcmpps(a.as_f32x16(), b.as_f32x16(), $imm5, neg_one, $imm4) | ||
}; | ||
} | ||
let r = constify_imm5_sae!(op, _MM_FROUND_CUR_DIRECTION, call); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not just use constify_imm5
here and hard-code the rounding mode in the vcmpps
call above? This code creates many unnecessary match branches.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a bad refactoring. I had it like that originally. Should be fixed now.
CI is fixed now. |
Thanks! |
This adds the AVX 512f floating point comparison intrinsics. This should finish all of the AVX 512f comparison intrinsics.