Skip to content

Arm64 jitstress outerloop#126736

Open
dhartglassMSFT wants to merge 1 commit intodotnet:mainfrom
dhartglassMSFT:fix_jitstress_arm64_outerloop
Open

Arm64 jitstress outerloop#126736
dhartglassMSFT wants to merge 1 commit intodotnet:mainfrom
dhartglassMSFT:fix_jitstress_arm64_outerloop

Conversation

@dhartglassMSFT
Copy link
Copy Markdown
Contributor

@dhartglassMSFT dhartglassMSFT commented Apr 10, 2026

Original fix here missed some cases, as msbuild or helix cuts off the failure list after 300:

95f94b6

This is applying the same fix to other locations we needed this.

I grabbed this codechange from @ylpoonlg (thanks in advance)

Ran jitstress, arm64 is green

Copilot AI review requested due to automatic review settings April 10, 2026 00:24
@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Apr 10, 2026
@dhartglassMSFT
Copy link
Copy Markdown
Contributor Author

/azp run runtime-coreclr jitstress2-jitstressregs

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts ARM64 JIT HWIntrinsic codegen to correctly account for multi-instruction expansion in RMW-style SVE intrinsics when generating non-constant-immediate jump tables. This aligns the HWIntrinsicImmOpHelper case-size calculation with the emitter’s behavior under register-stress scenarios (e.g., targetReg != op1Reg).

Changes:

  • Pass an explicit numInstrs to HWIntrinsicImmOpHelper for SVE saturating inc/dec-by-element-count codegen when the emitter may insert an extra move.
  • Pass an explicit numInstrs to HWIntrinsicImmOpHelper for NI_Sve_ExtractVector to match the emitter’s RMW handling (may require a move when targetReg != op1Reg).

Comment on lines +2655 to +2656
int numInstrs = (targetReg != op1Reg) ? 2 : 1;
HWIntrinsicImmOpHelper helper(this, op2Reg, 0, 511, node, numInstrs);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tomorrow I'll open a workitem to refactor this pattern into HWIntrinsicImmOpHelper somehow, since this pattern or something pretty similar now appears a number of times in this file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants