Implement SVE2 non-temporal scatter stores#123892
Implement SVE2 non-temporal scatter stores#123892ylpoonlg wants to merge 1 commit intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics |
🤖 Copilot Code Review — PR #123892Holistic AssessmentMotivation: This PR implements SVE2 non-temporal scatter store intrinsics as part of the larger SVE2 API work (issue #122033). The APIs were approved in issue #94023 and have clear justification — they expose ARM SVE2 hardware capabilities for scatter stores with cache-bypassing behavior. Approach: The implementation follows established patterns from existing SVE1 scatter intrinsics and SVE2 gather intrinsics. The codegen correctly distinguishes between index-based variants (which need LSL scaling) and byte-offset variants (which don't). Summary: Detailed Findings✅ Codegen Logic — Index scaling is correctThe codegen correctly applies LSL shifts only to index-based variants:
This matches the pattern used for ✅ Register Ordering — Matches SVE2 instruction encodingThe register swap ( ✅ Template Bug Fix — CorrectThe fix from ✅ API Surface — Consistent with approved proposalThe APIs follow the naming convention from issue #122033, correctly adding "NonTemporal" suffix to distinguish from existing SVE1
|
Contributes to #122033 .
@dotnet/arm64-contrib @a74nh