Skip to content

Arm64: Implement SVE2 APIs #115479

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
a74nh opened this issue May 12, 2025 · 1 comment
Open

Arm64: Implement SVE2 APIs #115479

a74nh opened this issue May 12, 2025 · 1 comment
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

Comments

@a74nh
Copy link
Contributor

a74nh commented May 12, 2025

This is to track the implementation of all of the SVE2 APIs.
SVE1 APIs were tracked in #99957

Approved APIs

Sve2 bitwise

  • BitwiseClearXor Add SVE2 API skeleton and implement BitwiseClearXor #115428
  • BitwiseSelect
  • BitwiseSelectLeftInverted
  • BitwiseSelectRightInverted
  • ShiftArithmeticRounded
  • ShiftArithmeticRoundedSaturate
  • ShiftArithmeticSaturate
  • ShiftLeftAndInsert
  • ShiftLeftLogicalSaturate
  • ShiftLeftLogicalSaturateUnsigned
  • ShiftLeftLogicalWideningEven
  • ShiftLeftLogicalWideningOdd
  • ShiftLogicalRounded
  • ShiftLogicalRoundedSaturate
  • ShiftRightAndInsert
  • ShiftRightArithmeticAdd
  • ShiftRightArithmeticNarrowingSaturateEven
  • ShiftRightArithmeticNarrowingSaturateOdd
  • ShiftRightArithmeticNarrowingSaturateUnsignedEven
  • ShiftRightArithmeticNarrowingSaturateUnsignedOdd
  • ShiftRightArithmeticRounded
  • ShiftRightArithmeticRoundedAdd
  • ShiftRightArithmeticRoundedNarrowingSaturateEven
  • ShiftRightArithmeticRoundedNarrowingSaturateOdd
  • ShiftRightArithmeticRoundedNarrowingSaturateUnsignedEven
  • ShiftRightArithmeticRoundedNarrowingSaturateUnsignedOdd
  • ShiftRightLogicalAdd
  • ShiftRightLogicalNarrowingEven
  • ShiftRightLogicalNarrowingOdd
  • ShiftRightLogicalRounded
  • ShiftRightLogicalRoundedAdd
  • ShiftRightLogicalRoundedNarrowingEven
  • ShiftRightLogicalRoundedNarrowingOdd
  • ShiftRightLogicalRoundedNarrowingSaturateEven
  • ShiftRightLogicalRoundedNarrowingSaturateOdd
  • Xor
  • XorRotateRight

Sve2 bitmanipulate

  • InterleavingXorLowerUpper
  • InterleavingXorUpperLower
  • MoveWideningLower
  • MoveWideningUpper
  • VectorTableLookup
  • VectorTableLookupExtension

Sve2 maths

  • AbsoluteDifferenceAdd
  • AbsoluteDifferenceAddWideningLower
  • AbsoluteDifferenceAddWideningUpper
  • AbsoluteDifferenceWideningLower
  • AbsoluteDifferenceWideningUpper
  • AddCarryWideningLower
  • AddCarryWideningUpper
  • AddHighNarowingLower
  • AddHighNarowingUpper
  • AddPairwise
  • AddPairwiseWidening
  • AddSaturate
  • AddSaturateWithSignedAddend
  • AddSaturateWithUnsignedAddend
  • AddWideLower
  • AddWideUpper
  • AddWideningLower
  • AddWideningLowerUpper
  • AddWideningUpper
  • DotProductComplex
  • HalvingAdd
  • HalvingSubtract
  • HalvingSubtractReversed
  • MaxNumberPairwise
  • MaxPairwise
  • MinNumberPairwise
  • MinPairwise
  • MultiplyAddBySelectedScalar
  • MultiplyAddWideningLower
  • MultiplyAddWideningUpper
  • MultiplyBySelectedScalar
  • MultiplySubtractBySelectedScalar
  • MultiplySubtractWideningLower
  • MultiplySubtractWideningUpper
  • MultiplyWideningLower
  • MultiplyWideningUpper
  • PolynomialMultiply
  • PolynomialMultiplyWideningLower
  • PolynomialMultiplyWideningUpper
  • RoundingAddHighNarowingLower
  • RoundingAddHighNarowingUpper
  • RoundingHalvingAdd
  • RoundingSubtractHighNarowingLower
  • RoundingSubtractHighNarowingUpper
  • SaturatingAbs
  • SaturatingDoublingMultiplyAddWideningLower
  • SaturatingDoublingMultiplyAddWideningLowerUpper
  • SaturatingDoublingMultiplyAddWideningUpper
  • SaturatingDoublingMultiplyHigh
  • SaturatingDoublingMultiplySubtractWideningLower
  • SaturatingDoublingMultiplySubtractWideningLowerUpper
  • SaturatingDoublingMultiplySubtractWideningUpper
  • SaturatingDoublingMultiplyWideningLower
  • SaturatingDoublingMultiplyWideningUpper
  • SaturatingNegate
  • SaturatingRoundingDoublingMultiplyAddHigh
  • SaturatingRoundingDoublingMultiplyHigh
  • SaturatingRoundingDoublingMultiplySubtractHigh
  • SubtractHighNarowingLower
  • SubtractHighNarowingUpper
  • SubtractSaturate
  • SubtractSaturateReversed
  • SubtractWideLower
  • SubtractWideUpper
  • SubtractWideningLower
  • SubtractWideningLowerUpper
  • SubtractWideningUpper
  • SubtractWideningUpperLower
  • SubtractWithBorrowWideningLower
  • SubtractWithBorrowWideningUpper

In review

Sve2 scatterstores

  • Scatter16BitNarrowing
  • Scatter16BitWithByteOffsetsNarrowing
  • Scatter32BitNarrowing
  • Scatter32BitWithByteOffsetsNarrowing
  • Scatter8BitNarrowing
  • Scatter8BitWithByteOffsetsNarrowing
  • ScatterNonTemporal

Sve2 mask

  • CreateWhileGreaterThanMask
  • CreateWhileGreaterThanOrEqualMask
  • CreateWhileReadAfterWriteMask
  • CreateWhileWriteAfterReadMask
  • Match
  • NoMatch
  • SaturatingExtractNarrowingLower
  • SaturatingExtractNarrowingUpper
  • SaturatingExtractUnsignedNarrowingLower
  • SaturatingExtractUnsignedNarrowingUpper

Sve2 gatherloads

  • GatherVectorByteZeroExtendNonTemporal
  • GatherVectorInt16SignExtendNonTemporal
  • GatherVectorInt16WithByteOffsetsSignExtendNonTemporal
  • GatherVectorInt32SignExtendNonTemporal
  • GatherVectorInt32WithByteOffsetsSignExtendNonTemporal
  • GatherVectorNonTemporal
  • GatherVectorSByteSignExtendNonTemporal
  • GatherVectorUInt16WithByteOffsetsZeroExtendNonTemporal
  • GatherVectorUInt16ZeroExtendNonTemporal
  • GatherVectorUInt32WithByteOffsetsZeroExtendNonTemporal
  • GatherVectorUInt32ZeroExtendNonTemporal

Sve2 fp

  • AddRotateComplex
  • DownConvertNarrowingUpper
  • DownConvertRoundingOdd
  • DownConvertRoundingOddUpper
  • Log2
  • MultiplyAddRotateComplex
  • MultiplyAddRotateComplexBySelectedScalar
  • ReciprocalEstimate
  • ReciprocalSqrtEstimate
  • SaturatingComplexAddRotate
  • SaturatingRoundingDoublingComplexMultiplyAddHighRotate
  • UpConvertWideningUpper

Sve2 counting

  • CountMatchingElements
  • CountMatchingElementsIn128BitSegments
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label May 12, 2025
@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label May 12, 2025
@a74nh a74nh added 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 and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners untriaged New issue has not been triaged by the area owner labels May 12, 2025
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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
Projects
None yet
Development

No branches or pull requests

1 participant