Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[API Proposal]: Arm64 SVE: FEAT_SVE: Prefetch APIs are inconsistent #114909

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Tracked by #115331
a74nh opened this issue Apr 22, 2025 · 1 comment
Open
Tracked by #115331

[API Proposal]: Arm64 SVE: FEAT_SVE: Prefetch APIs are inconsistent #114909

a74nh opened this issue Apr 22, 2025 · 1 comment
Labels
area-System.Runtime.Intrinsics arm-sve Work related to arm64 SVE/SVE2 support

Comments

@a74nh
Copy link
Contributor

a74nh commented Apr 22, 2025

The following Prefetch APIs were implemented:

public static unsafe void GatherPrefetch8Bit(Vector<T> mask, Vector<T2> addresses, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch8Bit(Vector<T> mask, void* address, Vector<T2> offsets, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch16Bit(Vector<T> mask, Vector<T2> addresses, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch16Bit(Vector<T> mask, void* address, Vector<T2> indices, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch32Bit(Vector<T> mask, Vector<T2> addresses, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch32Bit(Vector<T> mask, void* address, Vector<T2> indices, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch64Bit(Vector<T> mask, Vector<T2> addresses, [ConstantExpected] SvePrefetchType prefetchType);
public static unsafe void GatherPrefetch64Bit(Vector<T> mask, void* address, Vector<T2> indices, [ConstantExpected] SvePrefetchType prefetchType);

public static unsafe void Prefetch8Bit(Vector<T> mask, void* address, SvePrefetchType op); // PRFB
public static unsafe void Prefetch16Bit(Vector<T> mask, void* address, SvePrefetchType op); // PRFH
public static unsafe void Prefetch32Bit(Vector<T> mask, void* address, SvePrefetchType op); // PRFW
public static unsafe void Prefetch64Bit(Vector<T> mask, void* address, SvePrefetchType op); // PRFD

However, the last four were implemented as:

public static unsafe void PrefetchBytes(Vector<T> mask, void* address, SvePrefetchType op); // PRFB
public static unsafe void PrefetchInt16(Vector<T> mask, void* address, SvePrefetchType op); // PRFH
public static unsafe void PrefetchInt32(Vector<T> mask, void* address, SvePrefetchType op); // PRFW
public static unsafe void PrefetchInt64(Vector<T> mask, void* address, SvePrefetchType op); // PRFD

Original API reviews: #97831 and #94007

Either the Prefetch*() APIs or the GatherPrefetch*() APIs need renaming.

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Apr 22, 2025
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Apr 22, 2025
@a74nh a74nh added area-System.Runtime.Intrinsics arm-sve Work related to arm64 SVE/SVE2 support and removed untriaged New issue has not been triaged by the area owner needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Apr 22, 2025
Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics
See info in area-owners.md if you want to be subscribed.

@a74nh a74nh changed the title Arm64 SVE: FEAT_SVE: Prefetch APIs are inconsistent [API Proposal]: Arm64 SVE: FEAT_SVE: Prefetch APIs are inconsistent May 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-System.Runtime.Intrinsics arm-sve Work related to arm64 SVE/SVE2 support
Projects
None yet
Development

No branches or pull requests

1 participant