- Notifications
You must be signed in to change notification settings - Fork5.2k
Bring back JIT support for core Vector64/128/256/512 APIs#103177
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
tannergooding commentedJun 7, 2024
CC.@jkotas |
Tagging subscribers to this area:@JulieLeeMSFT,@jakobbotsch |
jkotas left a comment
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.
LGTM. (Somebody from the JIT team should signoff as well.)
tannergooding commentedJun 7, 2024
(Pushed to the wrong branch by accident, it's back to how it was at last approval) |
tannergooding commentedJun 7, 2024
CC.@EgorBo, since you've reviewed the other PRs |
Uh oh!
There was an error while loading.Please reload this page.
As per the discussion in#103150, the basic building blocks (
Vector64/128/256/512<T>andVector<T>) should stay intrinsic in the JIT.This doesn't bring back "all" APIs, but rather the core ones that are expected to see the heaviest usage. In general, the rule I followed on deciding what to bring back vs not was that if it was a general API that was a 1-to-1 forward to another intrinsic and didn't get any other specialization it was fine to leave in managed
So while it brings back ones like
get_ZeroandAs, it doesn't bring backAnd(forwards toop_BitwiseAddition),Add(forwards toop_Addition), orLoad(forwards toLoadUnsafe).As per the discussion,
Vector2,Vector3,Vector4,Quaternion, andPlaneremain implemented in managed.