-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Open
Labels
User StoryA single user-facing feature. Can be grouped under an epic.A 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 SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarm-sveWork related to arm64 SVE/SVE2 supportWork related to arm64 SVE/SVE2 support
Milestone
Description
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 Implement SVE2 BitwiseSelect, BitwiseSelectLeftInverted, BitwiseSelectRightInverted #115775
- BitwiseSelectLeftInverted Implement SVE2 BitwiseSelect, BitwiseSelectLeftInverted, BitwiseSelectRightInverted #115775
- BitwiseSelectRightInverted Implement SVE2 BitwiseSelect, BitwiseSelectLeftInverted, BitwiseSelectRightInverted #115775
- ShiftArithmeticRounded Implement SVE2 ShiftArithmeticRounded, ShiftArithmeticRoundedSaturate, ShiftArithmeticSaturate #115774
- ShiftArithmeticRoundedSaturate Implement SVE2 ShiftArithmeticRounded, ShiftArithmeticRoundedSaturate, ShiftArithmeticSaturate #115774
- ShiftArithmeticSaturate Implement SVE2 ShiftArithmeticRounded, ShiftArithmeticRoundedSaturate, ShiftArithmeticSaturate #115774
- ShiftLeftAndInsert Implement SVE2 ShiftLeftAndInsert #115776
- ShiftLeftLogicalSaturate Implement SVE2 ShiftLeftLogical Intrinsics #116380
- ShiftLeftLogicalSaturateUnsigned Implement SVE2 ShiftLeftLogical Intrinsics #116380
- ShiftLeftLogicalWideningEven Implement SVE2 ShiftLeftLogical Intrinsics #116380
- ShiftLeftLogicalWideningOdd Implement SVE2 ShiftLeftLogical Intrinsics #116380
- ShiftLogicalRounded Implement SVE2 ShiftLogicalRounded, ShiftLogicalRoundedSaturate #116784
- ShiftLogicalRoundedSaturate Implement SVE2 ShiftLogicalRounded, ShiftLogicalRoundedSaturate #116784
- ShiftRightAndInsert Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticAdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticNarrowingSaturateEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticNarrowingSaturateOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticNarrowingSaturateUnsignedEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticNarrowingSaturateUnsignedOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRounded Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRoundedAdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRoundedNarrowingSaturateEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRoundedNarrowingSaturateOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRoundedNarrowingSaturateUnsignedEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightArithmeticRoundedNarrowingSaturateUnsignedOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalAdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalNarrowingEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalNarrowingOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRounded Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRoundedAdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRoundedNarrowingEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRoundedNarrowingOdd Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRoundedNarrowingSaturateEven Implement various SVE2 Right Shift intrinsics #116914
- ShiftRightLogicalRoundedNarrowingSaturateOdd Implement various SVE2 Right Shift intrinsics #116914
- Xor Implement SVE2 Xor, XorRotateRight #115891
- XorRotateRight Implement SVE2 Xor, XorRotateRight #115891
Sve2 bitmanipulate
- InterleavingXorEvenOdd arm64: Add InterleavingXorEvenOdd & InterleavingXorOddEven #116525
- InterleavingXorOddEven arm64: Add InterleavingXorEvenOdd & InterleavingXorOddEven #116525
- VectorTableLookup arm64: Sve2 VectorTableLookup & VectorTableLookupExtension #117051
- VectorTableLookupExtension arm64: Sve2 VectorTableLookup & VectorTableLookupExtension #117051
Sve2 maths
- AbsoluteDifferenceAdd SVE2 API for AbsoluteDifferenceAdd #115513
- AbsoluteDifferenceWideningLowerAndAddEven SVE2 API for AbsoluteDifferenceAdd #115513
- AbsoluteDifferenceWideningLowerAndAddOdd SVE2 API for AbsoluteDifferenceAdd #115513
- AbsoluteDifferenceWideningEven Implement SVE2 AbsoluteDifferenceWidening(Upper/Lower) #116268
- AbsoluteDifferenceWideningOdd Implement SVE2 AbsoluteDifferenceWidening(Upper/Lower) #116268
- AddCarryWideningEven Implement SVE AddCarryWidening (Upper/Lower) #116429
- AddCarryWideningOdd Implement SVE AddCarryWidening (Upper/Lower) #116429
- AddHighNarrowingEven Sve2 AddHighNarrowing (Even/Odd) #116848
- AddHighNarrowingOdd Sve2 AddHighNarrowing (Even/Odd) #116848
- AddPairwise SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- AddPairwiseWideningAndAdd SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- AddSaturate SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- AddWideningEven SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- AddWideningOdd SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- AddWideningEvenOdd SVE2 API for AddPairwise, AddPairwiseWidening, AddSaturate, AddWide and AddWidening #117188
- DotProductRotateComplex SVE2 API DotProductComplex and DotProductComplexBySelectedIndex #117706
- DotProductRotateComplexBySelectedIndex SVE2 API DotProductComplex and DotProductComplexBySelectedIndex #117706
- FusedAddHalving SVE2 API for FusedAddHalving and FusedSubtractHalving #117609
- FusedSubtractHalving SVE2 API for FusedAddHalving and FusedSubtractHalving #117609
- MaxNumberPairwise SVE2 API for MaxNumberPairwise, MaxPairwise, MinNumberPairwise and MinPairwise #117711
- MaxPairwise SVE2 API for MaxNumberPairwise, MaxPairwise, MinNumberPairwise and MinPairwise #117711
- MinNumberPairwise SVE2 API for MaxNumberPairwise, MaxPairwise, MinNumberPairwise and MinPairwise #117711
- MinPairwise SVE2 API for MaxNumberPairwise, MaxPairwise, MinNumberPairwise and MinPairwise #117711
- MultiplyBySelectedScalar Implement various SVE2 Multiply Instructions #117660
- MultiplyAddBySelectedScalar Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningEvenAndAdd Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningEvenAndAdd Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningOddAndAdd Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningOddAndAdd Implement various SVE2 Multiply Instructions #117660
- MultiplySubtractBySelectedScalar Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningEvenAndSubtract Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningEvenAndSubtract Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningOddAndSubtract Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningOddAndSubtract Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningEven Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningEven Implement various SVE2 Multiply Instructions #117660
- MultiplyWideningOdd Implement various SVE2 Multiply Instructions #117660
- MultiplyBySelectedScalarWideningOdd Implement various SVE2 Multiply Instructions #117660
- PolynomialMultiplyWideningEven Implement various SVE2 Multiply Instructions #117660
- PolynomialMultiplyWideningOdd Implement various SVE2 Multiply Instructions #117660
- AddRoundedHighNarrowingEven Implement SVE2 Rounded Arithmetic Intrinsics #117719
- AddRoundedHighNarrowingOdd Implement SVE2 Rounded Arithmetic Intrinsics #117719
- FusedAddRoundedHalving Implement SVE2 Rounded Arithmetic Intrinsics #117719
- SubtractRoundedHighNarrowingEven Implement SVE2 Rounded Arithmetic Intrinsics #117719
- SubtractRoundedHighNarrowingOdd Implement SVE2 Rounded Arithmetic Intrinsics #117719
- AbsSaturate arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningAndAddSaturateEven arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningBySelectedScalarAndAddSaturateEven arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningAndAddSaturateEvenOdd arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningAndAddSaturateOdd arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningBySelectedScalarAndAddSaturateOdd arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingSaturateHigh arm64: Missing Sve2 Saturate functions #118202
- MultiplyDoublingBySelectedScalarSaturateHigh arm64: Missing Sve2 Saturate functions #118202
- MultiplyDoublingWideningAndSubtractSaturateEven arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningBySelectedScalarAndSubtractSaturateEven arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningAndSubtractSaturateEvenOdd arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningAndSubtractSaturateOdd arm64: Add Sve2 Saturating functions #117758
- MultiplyDoublingWideningSaturateEven arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyDoublingWideningSaturateEvenBySelectedScalar arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyDoublingWideningSaturateOdd arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyDoublingWideningSaturateOddBySelectedScalar arm64: Add remaining Sve2 Saturating functions #117934
- NegateSaturate arm64: Add Sve2 Saturating functions #117758
- MultiplyRoundedDoublingSaturateAndAddHigh arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyRoundedDoublingSaturateBySelectedScalarAndAddHigh arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyRoundedDoublingSaturateHigh arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyRoundedDoublingBySelectedScalarSaturateHigh arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyRoundedDoublingSaturateAndSubtractHigh arm64: Add remaining Sve2 Saturating functions #117934
- MultiplyRoundedDoublingSaturateBySelectedScalarAndSubtractHigh arm64: Add remaining Sve2 Saturating functions #117934
- SubtractHighNarrowingEven arm64: Add Sve2 Subtract functions #117318
- SubtractHighNarrowingOdd arm64: Add Sve2 Subtract functions #117318
- SubtractSaturate arm64: Add Sve2 Subtract functions #117318
- SubtractWideningEven arm64: Add Sve2 Subtract functions #117318
- SubtractWideningOdd arm64: Add Sve2 Subtract functions #117318
- SubtractWideningEven arm64: Add Sve2 Subtract functions #117318
- SubtractWideningEvenOdd arm64: Add Sve2 Subtract functions #117318
- SubtractWideningOdd arm64: Add Sve2 Subtract functions #117318
- SubtractWideningOddEven arm64: Add Sve2 Subtract functions #117318
- SubtractBorrowWideningEven arm64: Add Sve2 Subtract functions #117318
- SubtractBorrowWideningOdd arm64: Add Sve2 Subtract functions #117318
Sve2 scatterstores
- Scatter16BitNarrowing
- Scatter16BitWithByteOffsetsNarrowing
- Scatter32BitNarrowing
- Scatter32BitWithByteOffsetsNarrowing
- Scatter8BitNarrowing
- Scatter8BitWithByteOffsetsNarrowing
- ScatterNonTemporal
Sve2 gatherloads
- GatherVectorByteZeroExtendNonTemporal
- GatherVectorInt16SignExtendNonTemporal
- GatherVectorInt16WithByteOffsetsSignExtendNonTemporal
- GatherVectorInt32SignExtendNonTemporal
- GatherVectorInt32WithByteOffsetsSignExtendNonTemporal
- GatherVectorNonTemporal
- GatherVectorSByteSignExtendNonTemporal
- GatherVectorUInt16WithByteOffsetsZeroExtendNonTemporal
- GatherVectorUInt16ZeroExtendNonTemporal
- GatherVectorUInt32WithByteOffsetsZeroExtendNonTemporal
- GatherVectorUInt32ZeroExtendNonTemporal
Sve2 fp
- AddRotateComplex SVE2 FP API's #118332
- ConvertToSingleOdd
- ConvertToSingleEvenRoundToOdd SVE2 FP API's #118332
- ConvertToSingleOddRoundToOdd
- Log2 SVE2 FP API's #118332
- MultiplyAddRotateComplex SVE2 FP API's #118332
- MultiplyAddRotateComplexBySelectedScalar SVE2 FP API's #118332
- ReciprocalEstimate SVE2 FP API's #118332
- ReciprocalSqrtEstimate SVE2 FP API's #118332
- AddSaturateRotateComplex SVE2 FP API's #118332
- MultiplyAddRoundedDoublingSaturateHighRotateComplex SVE2 FP API's #118332
- ConvertToDoubleOdd SVE2 FP API's #118332
Sve2 counting
- CountMatchingElements
- CountMatchingElementsIn128BitSegments
In review
Sve2 mask
- CreateWhileGreaterThanMask
- CreateWhileGreaterThanOrEqualMask
- CreateWhileReadAfterWriteMask
- CreateWhileWriteAfterReadMask
- Match
- NoMatch
- SaturatingExtractNarrowingLower
- SaturatingExtractNarrowingUpper
- SaturatingExtractUnsignedNarrowingLower
- SaturatingExtractUnsignedNarrowingUpper
Metadata
Metadata
Assignees
Labels
User StoryA single user-facing feature. Can be grouped under an epic.A 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 SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarm-sveWork related to arm64 SVE/SVE2 supportWork related to arm64 SVE/SVE2 support