-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[release/9.0] Fix Issue #105820 #106656
[release/9.0] Fix Issue #105820 #106656
Conversation
…setsCF and ResetsOF are true
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@TIHan Also, has this been approved by Tactics already? We're quite late in the process. |
I think his intention was to backport to RC2. I will talk to @TIHan to fix it.
|
Okay, apologies for the confusion. The title kept the |
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.
approved. please get a code review. we can merge when ready.
@TIHan can you look at the failing CI and let me know when this is ready to merge? |
Yes, will do. |
Failures are unrelated to this change since all of them are arm related. There is a x86 installer build failure but is also unrelated. So it can be merged. |
/ba-g failures are unrelated to change |
Backport of #106655 to release/9.0
/cc @TIHan @github-actions[bot]
Customer Impact
Correctness issue with the HW intrinsic
Bmi1.BitFieldExtract
when used as part of a conditional.test eax eax
was not being emitted before thejl
instruction.Regression
Testing
Fuzzlyn found the fix in its code generation. This was missed due to no stress testing against these APIs; Fuzzlyn generates code in a variety of scenarios that are not common to end-users. No tests were added as it appeared to be hit commonly when Fuzzlyn was generating code.
Risk
Low, the fix was straightforward and simple. Additional checks such as
DoesWriteSignFlag(lastIns) && DoesWriteZeroFlag(lastIns) && DoesWriteParityFlag(lastIns)
were used to help determine if the conditional flags were reset to zero or not.