Uh oh!
There was an error while loading. Please reload this page.
JIT: Remove dead Vector2/3 lowering code - #125821
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
There was a problem hiding this comment.
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
LowerHWIntrinsicCmpOpandLowerHWIntrinsicDotby 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
ToScalarinstead ofGetElement(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). |
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). |
Uh oh!
There was an error while loading. Please reload this page.
Since the old SIMD types now use HWIntrinsics, these paths are dead.
Since the old SIMD types now use HWIntrinsics, these paths are dead.