Update outerloop convert tests for saturating float/double casts#130974
Merged
tannergooding merged 1 commit intoJul 17, 2026
Merged
Conversation
The saturating float/double -> small integral cast changes from dotnet#128604 were not reflected in JIT/IL_Conformance/Convert/TestConvertFromIntegral and JIT/Regression/CLR-x86-JIT/V1-M10/b05617, breaking outerloop. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 3 pipeline(s). 12 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
Contributor
There was a problem hiding this comment.
Pull request overview
Updates JIT test expectations/coverage to align with the current saturating semantics for out-of-range float/double → small integral conversions, preventing outerloop CI failures while keeping Mono runs green by skipping or relaxing runtime-divergent assertions.
Changes:
- Mark
b05617as unsupported on Mono (where conversions still truncate) and adjust its IL constant to preserve the expected final result under CoreCLR’s saturating behavior. - Treat the
ushort.MaxValue → shortcases (viaConv_I2) inTestConvertFromIntegralas unspecified behavior to accommodate CoreCLR/Mono divergence.
Show a summary per file
| File | Description |
|---|---|
src/tests/JIT/Regression/CLR-x86-JIT/V1-M10/b05617/b05617.ilproj |
Skips this test on Mono via CLRTestTargetUnsupported due to runtime behavioral divergence. |
src/tests/JIT/Regression/CLR-x86-JIT/V1-M10/b05617/b05617.il |
Updates an ldc.i8 constant so the test continues to return the expected value under saturating cast semantics. |
src/tests/JIT/IL_Conformance/Convert/TestConvertFromIntegral.cs |
Marks the two runtime-divergent ushort.MaxValue → short checked conversions as UnspecifiedBehaviour, consistent with other out-of-range float/double cases in the file. |
Copilot's findings
- Files reviewed: 3/3 changed files
- Comments generated: 0
Member
Author
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Member
Author
|
CC. @jakobbotsch, @EgorBo, @radekdoulik for the other outerloop fix |
jakobbotsch
approved these changes
Jul 17, 2026
This was referenced Jul 17, 2026
Open
Member
Author
|
/ba-g unrelated failures, fixing outerloop tests |
tannergooding
enabled auto-merge (squash)
July 17, 2026 22:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The saturating
float/double-> small integral cast changes from #128604 were not reflected in two outerloop tests, breaking CI (see #130962 (comment)).JIT/Regression/CLR-x86-JIT/V1-M10/b05617: under saturationconv.u1of2.564783e7now yields255(was214) andconv.i1of5246667200yields127(was-1). Propagating through the stack, the finalconv.u4constant is updated4294967086->4294967043so the test still returns100. Mono still truncates, so the test is marked unsupported on Mono, referencing the same tracking issue (#100368) used by the JIT regression test in #128604.JIT/IL_Conformance/Convert/TestConvertFromIntegral: the two checkedushort.MaxValue -> shortviaConv_I2cases now saturate toshort.MaxValueon CoreCLR instead of truncating to-1. Since the result is now runtime-divergent (Mono truncates), they are markedUnspecifiedBehaviour, consistent with how every other cross-runtime-divergent float->integral out-of-range case in this file is already handled. This keeps the rest of the file running on Mono.Verified locally against a checked runtime:
b05617returns100andTestConvertFromIntegralreports "All tests passed".Note
This PR description was drafted by Copilot.