Skip to content

Document breaking change: Arm64 SVE NonFaulting loads require mask parameter - #47907

Merged
gewarren merged 4 commits into
mainfrom
copilot/fix-47439
Aug 15, 2025
Merged

gewarren merged 4 commits into
mainfrom
copilot/fix-47439

Conversation

Copilot AI commented Aug 8, 2025 •

Copy link
Copy Markdown
Contributor

This PR adds comprehensive breaking change documentation for .NET 10, where all Arm64 SVE NonFaulting load APIs now require a mask parameter as the first argument.

Changes Made

New Documentation:

  • Created docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md with complete breaking change documentation following the standard template

Navigation Updates:

  • Added entry to docs/core/compatibility/toc.yml under Core .NET libraries section for .NET 10
  • Added table entry to docs/core/compatibility/10.0.md with proper classification as binary/source incompatible

Breaking Change Details

This change affects all 25 NonFaulting load APIs in the System.Runtime.Intrinsics.Arm.Sve namespace. Previously, these methods took only an address parameter:

// .NET 9 behavior
Vector<short> result = Sve.LoadVectorByteNonFaultingZeroExtendToInt16(address);

Now they require a mask parameter as the first argument:

// .NET 10 behavior
Vector<short> result = Sve.LoadVectorByteNonFaultingZeroExtendToInt16(
    Sve.CreateTrueMaskInt16(), address);

The change was necessary because non-faulting loads update the FFR (First Fault Register) based on which vector lanes are loaded, making the standard ConditionalSelect approach invalid for masked operations.

Documentation Standards

  • Follows Microsoft Writing Style Guide
  • Uses proper xref syntax for API cross-references
  • Passes all markdownlint validation
  • Includes clear migration guidance and code examples
  • Documents technical reasoning behind the change

Fixes #47439.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.


Internal previews

📄 File 🔗 Preview link
docs/core/compatibility/10.0.md Breaking changes in .NET 10
docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md Arm64 SVE nonfaulting loads require mask parameter
docs/core/compatibility/toc.yml docs/core/compatibility/toc

…k parameter

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service dotnet-policy-service Bot added dotnet-fundamentals/svc okr-quality Content-quality KR: Concerns article defects (bugs), freshness, or build warnings. labels Aug 8, 2025
Copilot AI changed the title [WIP] [Breaking change]: Arm64 SVE NonFaulting loads Document breaking change: Arm64 SVE NonFaulting loads require mask parameter Aug 8, 2025
Copilot AI requested a review from gewarren August 8, 2025 22:56
@gewarren
gewarren marked this pull request as ready for review August 11, 2025 22:04
@gewarren
gewarren requested a review from a team as a code owner August 11, 2025 22:04
@gewarren

Copy link
Copy Markdown
Collaborator

cc @a74nh.

@gewarren gewarren removed the okr-quality Content-quality KR: Concerns article defects (bugs), freshness, or build warnings. label Aug 11, 2025

@a74nh a74nh left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Technical contents of this LGTM. I'm not sure what the expected style or depth of this should be so I can't comment on that part.

@gewarren
gewarren requested a review from a team August 15, 2025 03:29

@BillWagner BillWagner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This LGTM @gewarren Let's :shipit:

@gewarren
gewarren merged commit d6b51cf into main Aug 15, 2025
@gewarren
gewarren deleted the copilot/fix-47439 branch August 15, 2025 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Breaking change]: Arm64 SVE NonFaulting loads

4 participants