-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Enable partially implemented Intel HW intrinsics ISAs - CoreCLR part of changes #17134
Conversation
CoreFX part of changes is in PR dotnet/corefx#28377 |
Do we not want to make this change in master? There will be another round of changes ported to the 2.1 branch, so I think this change should be made there, unless we explicitly want to retain the not-supported behavior. @RussKeldorph can confirm. |
@CarolEidt I am fine with either way of implementing this change. Should I move this PR to master or wait for @RussKeldorph ? |
Let's wait and see, as I think it should probably go into master. I believe that with the "versioned with the target framework" model we will be keeping the corefx apis in sync with the JIT implementation. |
If the corresponding change is going into corefx master, the should go to coreclr master. Did I understand the question? |
The release/2.1 branch seems not aware of the current intrinsic implementations, I am not sure if this is the good time to make this change... If we only move |
@@ -540,27 +540,28 @@ GenTree* Compiler::addRangeCheckIfNeeded(NamedIntrinsic intrinsic, GenTree* last | |||
// Arguments: | |||
// isa - Instruction set | |||
// Return Value: | |||
// true - all the hardware intrinsics of "isa" are implemented in RyuJIT. | |||
// true - all the hardware intrinsics of "isa" exposed in CoreFX | |||
// System.Runtime.Intrinsics.Experimental assembly are implemented in RyuJIT. |
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.
I do not think we need the new comment. JIT implementation is not related to corefx surface and the S.R.Intrinsic.Experimental
package is a temporary solution.
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.
S.R.Intrinsic.Experimental
package is a temporary solution
Agree, however, function logic has changed and old description is wrong. Perhaps I will add TODO-XARCH-Cq to describe it and remember to update function and comment in future. I would expect that once we have all ISAs implemented we will not need this check and function anymore.
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.
we will not need this check and function anymore.
Not really, I think that we always need this logic for future work (e.g., AVX-512) even though the current ISA support gets completed.
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.
I think that we always need this logic for future work (e.g., AVX-512)
Yes, you are right, but only under the condition that we will follow implementation pattern where APIs are exposed first and implemented later.
We can make this coreclr change to
As far as I understand the problem we should decide on is
The question is:
IMO we should merge into master in both repos and for tests build make dependency directly on S.P.C. This will allow for clear cut "versioned with the target framework" feature development model and we could get rid of |
@CarolEidt @RussKeldorph @eerhardt @fiigii @tannergooding Pls take a look at the proposed modification of changes. |
The process is to merge all changes into master first and stabilize there. And then if they are necessary to be ported to a release branch, they are then ported as necessary. So this and the corefx change should all go into There will be another integration from |
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.
The code changes look good - but this needs to target master.
Closing as new PR #17184 is targeting |
No description provided.