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 Sve.ScatterXBitYNarrowing() on Arm64 #104720

Merged

Conversation

SwapnilGaikwad
Copy link
Contributor

Contribute towards #99957.

Includes:

  • Sve.Scatter16BitNarrowing()
  • Sve.Scatter8BitNarrowing()
  • Sve.Scatter32BitNarrowing()
  • Sve.Scatter16BitWithByteOffsetsNarrowing()
  • Sve.Scatter8BitWithByteOffsetsNarrowing()
  • Sve.Scatter32BitWithByteOffsetsNarrowing()

@a74nh @kunalspathak @dotnet/arm64-contrib @arch-arm64-sve

Includes:
- Sve.Scatter16BitNarrowing()
- Sve.Scatter8BitNarrowing()
- Sve.Scatter32BitNarrowing()
- Sve.Scatter16BitWithByteOffsetsNarrowing()
- Sve.Scatter8BitWithByteOffsetsNarrowing()
- Sve.Scatter32BitWithByteOffsetsNarrowing()
Copy link

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

1 similar comment
Copy link

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Jul 11, 2024
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.

@SwapnilGaikwad
Copy link
Contributor Author

All scatter store stress tests are passing
===================Running default===================
------------------- {} -------------------
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_bases_double_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_bases_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_bases_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_double_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_double_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_int_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_int_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_long_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_float_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_float_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_uint_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_uint_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_ulong_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter_indices_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitNarrowing_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitNarrowing_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_int_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_int_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_uint_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_uint_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_long_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_ulong_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter16BitWithByteOffset_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitNarrowing_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitNarrowing_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitWithByteOffset_long_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitWithByteOffset_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitWithByteOffset_ulong_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter32BitWithByteOffset_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitNarrowing_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitNarrowing_ulong_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_int_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_int_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_uint_int() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_uint_uint() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_long_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_long_ulong() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_ulong_long() : 9
Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve._Sve.Program.Sve_Scatter8BitWithByteOffset_ulong_ulong() : 9
===================Running jitstress===================
------------------- {'JitMinOpts': '1'} -------------------
------------------- {'JitStress': '1'} -------------------
------------------- {'JitStress': '2'} -------------------
------------------- {'JitStress': '1', 'TieredCompilation': '1'} -------------------
------------------- {'JitStress': '2', 'TieredCompilation': '1'} -------------------
------------------- {'TailcallStress': '1'} -------------------
------------------- {'ReadyToRun': '0'} -------------------
===================Running jitstressregs===================
------------------- {'JitStressRegs': '1'} -------------------
------------------- {'JitStressRegs': '2'} -------------------
------------------- {'JitStressRegs': '3'} -------------------
------------------- {'JitStressRegs': '4'} -------------------
------------------- {'JitStressRegs': '8'} -------------------
------------------- {'JitStressRegs': '0x10'} -------------------
------------------- {'JitStressRegs': '0x80'} -------------------
------------------- {'JitStressRegs': '0x1000'} -------------------
------------------- {'JitStressRegs': '0x2000'} -------------------
===================Running jitstress2-jitstressregs===================
------------------- {'JitStress': '2', 'JitStressRegs': '1'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '2'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '3'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '4'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '8'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '0x10'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '0x80'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '0x1000'} -------------------
------------------- {'JitStress': '2', 'JitStressRegs': '0x2000'} -------------------

Copy link
Contributor

@TIHan TIHan left a comment

Choose a reason for hiding this comment

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

So far, this look good. Will give another look when it's ready for review.

@kunalspathak kunalspathak added the arm-sve Work related to arm64 SVE/SVE2 support label Jul 12, 2024
@SwapnilGaikwad SwapnilGaikwad marked this pull request as ready for review July 12, 2024 21:01
@SwapnilGaikwad
Copy link
Contributor Author

So far, this look good. Will give another look when it's ready for review.

Thanks @TIHan. I had kept it as a draft because I wasn't sure about how we want to deal with the conflicting APIs that are currently commented 🙂 .

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

Looks good overall. Added some nit comments.

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks!

@kunalspathak
Copy link
Member

/ba-g superpmi replay failures is because of intermittent issue reported in #103113 and other is related to #104786

@kunalspathak kunalspathak merged commit 0166246 into dotnet:main Jul 15, 2024
157 of 166 checks passed
@SwapnilGaikwad SwapnilGaikwad deleted the github-sve-sccatter-narrowing branch July 15, 2024 20:42
@github-actions github-actions bot locked and limited conversation to collaborators Aug 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Runtime.Intrinsics arm-sve Work related to arm64 SVE/SVE2 support community-contribution Indicates that the PR has been added by a community member new-api-needs-documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants