Skip to content
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

Add iOS and tvOS minimally supported intrinsics #44151

Closed
marek-safar opened this issue Nov 2, 2020 · 9 comments
Closed

Add iOS and tvOS minimally supported intrinsics #44151

marek-safar opened this issue Nov 2, 2020 · 9 comments
Assignees
Milestone

Comments

@marek-safar
Copy link
Contributor

Both iOS and tvOS have a well-known set of hardware where it can run. If we consider iOS10 and tvOS10 as minimal versions we could fill a minimally supported intrinsics in SPC substitutions to trim any software fallback.

Note: The same will probably apply to Apple Silicon once it's out

@EgorBo @rolfbjarne

@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Nov 2, 2020
@EgorBo
Copy link
Member

EgorBo commented Nov 2, 2020

We currently don't have any arm64 intrinsics in Mono except https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/ArmBase.cs which should be enabled by default for any arm64 hw.

Vector<T> should be, in theory, quite easy to implement since our LLVM-engine already emits cross-platform llvm vectors for it.

@marek-safar
Copy link
Contributor Author

Yeah, we'll have to guard that for LLVM codegen only

@rolfbjarne
Copy link
Member

If we consider iOS10 and tvOS10 as minimal versions

Aren't intrinsics usually based on the cpu and not the OS version?

@marek-safar
Copy link
Contributor Author

@rolfbjarne true but I'm referring to OS version as the definition for the minimally supported hw/cpu.

@SamMonoRT SamMonoRT removed the untriaged New issue has not been triaged by the area owner label Jun 23, 2021
@SamMonoRT SamMonoRT added this to the 6.0.0 milestone Jun 23, 2021
@SamMonoRT
Copy link
Member

@imhameed - if iOS uses AOT compilation with LLVM, all the work you did to add intrinsics is applicable here ? If so, please close the issue.

@SamMonoRT
Copy link
Member

xamarin/xamarin-macios#11379 should fix this issue, and we can close this out.

@imhameed
Copy link
Contributor

We should enable NEON by default for arm64 but yeah--I'll open a PR for this--all the arm64 hardware intrinsics ought to work on Mono.

@imhameed
Copy link
Contributor

imhameed commented Aug 1, 2021

This was done in #56323.

@imhameed imhameed closed this as completed Aug 1, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants