-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Updating emitInsCanOnlyWriteSSE2OrAVXReg to cover some of the newer instructions. #19141
Conversation
Rebased onto head now that #19130 has been merged. |
@dotnet-bot test Windows_NT x64 Checked jitincompletehwintrinsic @dotnet-bot test Windows_NT x86 Checked jitincompletehwintrinsic @dotnet-bot test Ubuntu x64 Checked jitincompletehwintrinsic |
@dotnet-bot test Ubuntu x64 Checked gcstress0xc @dotnet-bot test Windows_NT x64 Checked gcstress0xc |
CC. @AndyAyersMS, @CarolEidt, @fiigii |
{ | ||
return false; | ||
} | ||
|
||
return true; | ||
switch (ins) |
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.
New entries are:
case INS_andn:
case INS_blsi:
case INS_blsmsk:
case INS_blsr:
case INS_movmskpd:
case INS_movmskps:
case INS_pdep:
case INS_pext:
case INS_pextrw_sse41:
@@ -10099,6 +10127,8 @@ BYTE* emitter::emitOutputAM(BYTE* dst, instrDesc* id, code_t code, CnsVal* addc) | |||
switch (id->idInsFmt()) | |||
{ | |||
case IF_RWR_ARD: | |||
case IF_RRW_ARD: | |||
case IF_RWR_RRD_ARD: |
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 wasn't actually getting GCStress failures for the RWR_RRD_ARD
(as well as the corresponding SRD
, MRD
, and RRD
) entries... However, we are definitely executing SIMD instructions that write integer registers and that use those formats....
Anyone know if there is something I'm missing here?
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.
You may just be getting (un)lucky, as the written registers won't always contain GC refs.
As a general comment, when reviewing I saw at least a couple |
@CarolEidt, @AndyAyersMS do either of you have any concerns with merging this?
|
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
Added a note to #14523 about this. |
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 too.
I think you can use jit-diffs to check for GC reporting diffs (though it might require manual file diffing).
Might be interesting to see if anything turns up from this outside of methods that use these HW intrinsics.
Good idea, will check this before merging. |
corelib reported 0 diffs. Test diffs are still running. |
Only |
Thanks for checking. That explains why you didn't see other stress failures ... |
Right. They must be getting updated somewhere else, and I missed it somewhere. (I know |
Resolves https://github.com/dotnet/coreclr/issues/19127, https://github.com/dotnet/coreclr/issues/18997, and part of https://github.com/dotnet/coreclr/issues/19008.