Skip to content

Arm64: Implement SVE2 APIs #115479

Open
Open
@a74nh

Description

@a74nh

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

Approved APIs

Sve2 bitwise

Sve2 bitmanipulate

Sve2 maths

  • AbsoluteDifferenceAdd SVE2 API for AbsoluteDifferenceAdd  #115513
  • AbsoluteDifferenceAddWideningLower SVE2 API for AbsoluteDifferenceAdd  #115513
  • AbsoluteDifferenceAddWideningUpper SVE2 API for AbsoluteDifferenceAdd  #115513
  • AbsoluteDifferenceWideningLower
  • AbsoluteDifferenceWideningUpper
  • AddCarryWideningLower Implement SVE AddCarryWidening (Upper/Lower) #116429
  • AddCarryWideningUpper Implement SVE AddCarryWidening (Upper/Lower) #116429
  • AddHighNarowingLower Sve2 AddHighNarrowing (Upper/Lower) #116848
  • AddHighNarowingUpper Sve2 AddHighNarrowing (Upper/Lower) #116848
  • 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

Metadata

Metadata

Labels

User StoryA single user-facing feature. Can be grouped under an epic.area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarm-sveWork related to arm64 SVE/SVE2 support

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions