Skip to content

arm64: Rename SVE Prefetch APIs names to use Bit#115609

Merged
kunalspathak merged 7 commits into
dotnet:mainfrom
jonathandavies-arm:upstream/sve/rename-prefetch-apis
May 29, 2025
Merged

arm64: Rename SVE Prefetch APIs names to use Bit#115609
kunalspathak merged 7 commits into
dotnet:mainfrom
jonathandavies-arm:upstream/sve/rename-prefetch-apis

Conversation

@jonathandavies-arm

Copy link
Copy Markdown
Contributor

@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 May 15, 2025
@dotnet-policy-service dotnet-policy-service Bot added the community-contribution Indicates that the PR has been added by a community member label May 15, 2025
@kunalspathak kunalspathak added the arm-sve Work related to arm64 SVE/SVE2 support label May 15, 2025
@a74nh

a74nh commented May 16, 2025

Copy link
Copy Markdown
Contributor

@kunalspathak : Now that SVE exists in .NET9 and .NET10 do we have to do something special when changing the API names?

2025-05-15T13:50:31.1464888Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error : API compatibility errors between 'net9.0/System.Runtime.Intrinsics.dll' (left) and 'net10.0/System.Runtime.Intrinsics.dll' (right):
2025-05-15T13:50:31.1474870Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error CP0002: Member 'void System.Runtime.Intrinsics.Arm.Sve.PrefetchBytes(System.Numerics.Vector<byte>, void*, System.Runtime.Intrinsics.Arm.SvePrefetchType)' exists on net9.0/System.Runtime.Intrinsics.dll but not on net10.0/System.Runtime.Intrinsics.dll
2025-05-15T13:50:31.1477545Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error CP0002: Member 'void System.Runtime.Intrinsics.Arm.Sve.PrefetchInt16(System.Numerics.Vector<ushort>, void*, System.Runtime.Intrinsics.Arm.SvePrefetchType)' exists on net9.0/System.Runtime.Intrinsics.dll but not on net10.0/System.Runtime.Intrinsics.dll
2025-05-15T13:50:31.1491490Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error CP0002: Member 'void System.Runtime.Intrinsics.Arm.Sve.PrefetchInt32(System.Numerics.Vector<uint>, void*, System.Runtime.Intrinsics.Arm.SvePrefetchType)' exists on net9.0/System.Runtime.Intrinsics.dll but not on net10.0/System.Runtime.Intrinsics.dll
2025-05-15T13:50:31.1508773Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error CP0002: Member 'void System.Runtime.Intrinsics.Arm.Sve.PrefetchInt64(System.Numerics.Vector<ulong>, void*, System.Runtime.Intrinsics.Arm.SvePrefetchType)' exists on net9.0/System.Runtime.Intrinsics.dll but not on net10.0/System.Runtime.Intrinsics.dll
2025-05-15T13:50:31.1636343Z D:\a\_work\1\s\src\libraries\apicompat\ApiCompat.proj(93,5): error : API breaking changes found. If those are intentional, the APICompat suppression file can be updated by rebuilding with '/p:ApiCompatGenerateSuppressionFile=true'

Comment thread src/coreclr/jit/hwintrinsiclistarm64sve.h
Comment thread src/coreclr/jit/hwintrinsiclistarm64sve.h Outdated

@kunalspathak kunalspathak left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what is the purpose of adding this file?

@kunalspathak

Copy link
Copy Markdown
Contributor

@tannergooding - can you double check the changes in ApiCompatBaseline?

@a74nh a74nh mentioned this pull request May 27, 2025
16 tasks
@kunalspathak kunalspathak added the needs-author-action An issue or pull request that requires more info or actions from the author. label May 27, 2025
@dotnet-policy-service dotnet-policy-service Bot removed the needs-author-action An issue or pull request that requires more info or actions from the author. label May 29, 2025
@kunalspathak

Copy link
Copy Markdown
Contributor

/ba-g failures are unrelated

@kunalspathak kunalspathak merged commit 40063f8 into dotnet:main May 29, 2025
157 of 164 checks passed
@ericstj ericstj added the breaking-change Issue or PR that represents a breaking API or functional change over a previous release. label Jun 10, 2025
@dotnet-policy-service dotnet-policy-service Bot added the needs-breaking-change-doc-created Breaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet label Jun 10, 2025
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Added needs-breaking-change-doc-created label because this PR has the breaking-change label.

When you commit this breaking change:

  1. Create and link to this PR and the issue a matching issue in the dotnet/docs repo using the breaking change documentation template, then remove this needs-breaking-change-doc-created label.
  2. Ask a committer to mail the .NET Breaking Change Notification DL.

Tagging @dotnet/compat for awareness of the breaking change.

@ericstj

ericstj commented Jun 10, 2025

Copy link
Copy Markdown
Member

I marked this as breaking since it changed the method name. This is binary breaking for folks moving from .NET 9.0 to 10.0. @tannergooding are we OK with that break? It will mean libraries built against 9.0 will fail at runtime if they use these methods.

@ericstj

ericstj commented Jun 10, 2025

Copy link
Copy Markdown
Member

Correction, @kunalspathak let me know this was in experimental API - which is OK. That's an expected risk folks take using experimental API. Your call if you'd like to document this as breaking or not.

@gewarren - anything special that needs to happen in this case to clean up API docs for these renamed methods? I'm guessing the system is not going to just discover that these are removed.

@gewarren

Copy link
Copy Markdown
Contributor

@ericstj I logged an issue to add remarks about the new method names. The old methods will appear when .NET 9 is selected and disappear when .NET 10 is selected.

@github-actions github-actions Bot locked and limited conversation to collaborators Jul 11, 2025
@ericstj ericstj removed the needs-breaking-change-doc-created Breaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet label Oct 22, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI arm-sve Work related to arm64 SVE/SVE2 support breaking-change Issue or PR that represents a breaking API or functional change over a previous release. 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.

Arm64 SVE: Rename Prefetch APIs names to use Bit

6 participants