Skip to content

JIT: Remove dead Vector2/3 lowering code#125821

Open
saucecontrol wants to merge 3 commits intodotnet:mainfrom
saucecontrol:snv-cleanup
Open

JIT: Remove dead Vector2/3 lowering code#125821
saucecontrol wants to merge 3 commits intodotnet:mainfrom
saucecontrol:snv-cleanup

Conversation

@saucecontrol
Copy link
Member

Since the old SIMD types now use HWIntrinsics, these paths are dead.

Copilot AI review requested due to automatic review settings March 20, 2026 08:42
@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 Mar 20, 2026
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Mar 20, 2026
@dotnet-policy-service
Copy link
Contributor

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

Copy link
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

Removes lowering/codegen special-cases for 8/12-byte SIMD shapes (Vector2/Vector3) in JIT HWIntrinsic paths, based on the premise that these shapes are no longer produced now that the relevant SIMD types are implemented via HWIntrinsics.

Changes:

  • Simplify LowerHWIntrinsicCmpOp and LowerHWIntrinsicDot by removing SIMD8/SIMD12-specific logic and tightening associated assertions.
  • Tighten constant-create assertions to exclude SIMD8/SIMD12 where those sizes are no longer expected.
  • Use ToScalar instead of GetElement(0) for ARM64 Dot result extraction.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/coreclr/jit/lowerxarch.cpp Removes SIMD8/SIMD12 handling in compare/dot lowering and tightens create assertions.
src/coreclr/jit/lowerarmarch.cpp Removes SIMD12-specific compare/dot handling and tightens create assertions; updates comment to Vector64/128.
src/coreclr/jit/hwintrinsicarm64.cpp Changes Dot scalar extraction to use gtNewSimdToScalarNode.
src/coreclr/jit/gentree.cpp Tightens comparison intrinsic size assertion (drops SIMD12).

@saucecontrol
Copy link
Member Author

saucecontrol commented Mar 20, 2026

cc @dotnet/jit-contrib

This is zero diff for aarch, small improvement for xarch due to removal of the containment check bailout for SIMD8 and SIMD12 (these are handled correctly now that all HWIntrinsic containment logic uses operand size).

Diffs

Copilot AI review requested due to automatic review settings March 22, 2026 00:31
Copy link
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

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Copy link
Member

@tannergooding tannergooding left a comment

Choose a reason for hiding this comment

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

CC. @kg, @EgorBo for secondary review

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 community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants