-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Ensure we mark op2 as delayFree if it is rmw and the parent node returns a non-SIMD type #36226
Conversation
…rns a non-SIMD type
CC. @CarolEidt, @echesakovMSFT, @kunalspathak |
This wasn't failing for 32-bit because we have special handling here to account for only |
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 - thanks!
@tannergooding I didn't understand the issue description:
Can you please explain how contained op2 may use a register? My understanding if op2 is contained it doesn't need a register since it's computed as a part of the parent node. An example of such situation would also be helpful |
A contained op2 can be an addressing mode that uses a base and/or index register. |
@CarolEidt Thanks,make sense |
Right, the x86 addressing mode allows for We had 488B7D60 mov rdi, qword ptr [rbp+60H]
BEFFFFFFFF mov esi, -1
8BFE mov edi, esi
F2400F38F03F crc32 edi, byte ptr [rdi] |
Hello @tannergooding! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
This resolves #36198
We were missing the scenario where the intrinsic is RMW, op2 was contained, and where the parent node produces a non-SIMD result. In that scenario, the contained node may use a register from the same set as the target operand, in which case we need op2 to be delay free.