Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[mono] Tracking: Implement System.Runtime.Intrinsics.Arm.AdvSimd #42266

Closed
imhameed opened this issue Sep 15, 2020 · 4 comments
Closed

[mono] Tracking: Implement System.Runtime.Intrinsics.Arm.AdvSimd #42266

imhameed opened this issue Sep 15, 2020 · 4 comments
Assignees
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@imhameed
Copy link
Contributor

imhameed commented Sep 15, 2020

System.Runtime.Intrinsics.Arm.AdvSimd:

  • IsSupported
  • Abs
  • AbsSaturate
  • AbsScalar
  • AbsoluteCompareGreaterThan
  • AbsoluteCompareGreaterThanOrEqual
  • AbsoluteCompareLessThan
  • AbsoluteCompareLessThanOrEqual
  • AbsoluteDifference
  • AbsoluteDifferenceAdd
  • AbsoluteDifferenceWideningLower
  • AbsoluteDifferenceWideningLowerAndAdd
  • AbsoluteDifferenceWideningUpper
  • AbsoluteDifferenceWideningUpperAndAdd
  • Add
  • AddHighNarrowingLower
  • AddHighNarrowingUpper
  • AddPairwise
  • AddPairwiseWidening
  • AddPairwiseWideningAndAdd
  • AddPairwiseWideningAndAddScalar
  • AddPairwiseWideningScalar
  • AddRoundedHighNarrowingLower
  • AddRoundedHighNarrowingUpper
  • AddSaturate
  • AddSaturateScalar
  • AddScalar
  • AddWideningLower
  • AddWideningUpper
  • And
  • BitwiseClear
  • BitwiseSelect
  • Ceiling
  • CeilingScalar
  • CompareEqual
  • CompareGreaterThan
  • CompareGreaterThanOrEqual
  • CompareLessThan
  • CompareLessThanOrEqual
  • CompareTest
  • ConvertToInt32RoundAwayFromZero
  • ConvertToInt32RoundAwayFromZeroScalar
  • ConvertToInt32RoundToEven
  • ConvertToInt32RoundToEvenScalar
  • ConvertToInt32RoundToNegativeInfinity
  • ConvertToInt32RoundToNegativeInfinityScalar
  • ConvertToInt32RoundToPositiveInfinity
  • ConvertToInt32RoundToPositiveInfinityScalar
  • ConvertToInt32RoundToZero
  • ConvertToInt32RoundToZeroScalar
  • ConvertToSingle
  • ConvertToSingleScalar
  • ConvertToUInt32RoundAwayFromZero
  • ConvertToUInt32RoundAwayFromZeroScalar
  • ConvertToUInt32RoundToEven
  • ConvertToUInt32RoundToEvenScalar
  • ConvertToUInt32RoundToNegativeInfinity
  • ConvertToUInt32RoundToNegativeInfinityScalar
  • ConvertToUInt32RoundToPositiveInfinity
  • ConvertToUInt32RoundToPositiveInfinityScalar
  • ConvertToUInt32RoundToZero
  • ConvertToUInt32RoundToZeroScalar
  • DivideScalar
  • DuplicateSelectedScalarToVector128
  • DuplicateSelectedScalarToVector64
  • DuplicateToVector128
  • DuplicateToVector64
  • Extract
  • ExtractNarrowingLower
  • ExtractNarrowingSaturateLower
  • ExtractNarrowingSaturateUnsignedLower
  • ExtractNarrowingSaturateUnsignedUpper
  • ExtractNarrowingSaturateUpper
  • ExtractNarrowingUpper
  • ExtractVector128
  • ExtractVector64
  • Floor
  • FloorScalar
  • FusedAddHalving
  • FusedAddRoundedHalving
  • FusedMultiplyAdd
  • FusedMultiplyAddNegatedScalar
  • FusedMultiplyAddScalar
  • FusedMultiplySubtract
  • FusedMultiplySubtractNegatedScalar
  • FusedMultiplySubtractScalar
  • FusedSubtractHalving
  • Insert
  • InsertScalar
  • LeadingSignCount
  • LeadingZeroCount
  • LoadAndInsertScalar
  • LoadAndReplicateToVector128
  • LoadAndReplicateToVector64
  • LoadVector128
  • LoadVector64
  • Max
  • MaxNumber
  • MaxNumberScalar
  • MaxPairwise
  • Min
  • MinNumber
  • MinNumberScalar
  • MinPairwise
  • Multiply
  • MultiplyAdd
  • MultiplyAddByScalar
  • MultiplyAddBySelectedScalar
  • MultiplyByScalar
  • MultiplyBySelectedScalar
  • MultiplyBySelectedScalarWideningLower
  • MultiplyBySelectedScalarWideningLowerAndAdd
  • MultiplyBySelectedScalarWideningLowerAndSubtract
  • MultiplyBySelectedScalarWideningUpper
  • MultiplyBySelectedScalarWideningUpperAndAdd
  • MultiplyBySelectedScalarWideningUpperAndSubtract
  • MultiplyDoublingByScalarSaturateHigh
  • MultiplyDoublingBySelectedScalarSaturateHigh
  • MultiplyDoublingSaturateHigh
  • MultiplyDoublingWideningLowerAndAddSaturate
  • MultiplyDoublingWideningLowerAndSubtractSaturate
  • MultiplyDoublingWideningLowerByScalarAndAddSaturate
  • MultiplyDoublingWideningLowerByScalarAndSubtractSaturate
  • MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate
  • MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate
  • MultiplyDoublingWideningSaturateLower
  • MultiplyDoublingWideningSaturateLowerByScalar
  • MultiplyDoublingWideningSaturateLowerBySelectedScalar
  • MultiplyDoublingWideningSaturateUpper
  • MultiplyDoublingWideningSaturateUpperByScalar
  • MultiplyDoublingWideningSaturateUpperBySelectedScalar
  • MultiplyDoublingWideningUpperAndAddSaturate
  • MultiplyDoublingWideningUpperAndSubtractSaturate
  • MultiplyDoublingWideningUpperByScalarAndAddSaturate
  • MultiplyDoublingWideningUpperByScalarAndSubtractSaturate
  • MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate
  • MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate
  • MultiplyRoundedDoublingByScalarSaturateHigh
  • MultiplyRoundedDoublingBySelectedScalarSaturateHigh
  • MultiplyRoundedDoublingSaturateHigh
  • MultiplyScalar
  • MultiplyScalarBySelectedScalar
  • MultiplySubtract
  • MultiplySubtractByScalar
  • MultiplySubtractBySelectedScalar
  • MultiplyWideningLower
  • MultiplyWideningLowerAndAdd
  • MultiplyWideningLowerAndSubtract
  • MultiplyWideningUpper
  • MultiplyWideningUpperAndAdd
  • MultiplyWideningUpperAndSubtract
  • Negate
  • NegateSaturate
  • NegateScalar
  • Not
  • Or
  • OrNot
  • PolynomialMultiply
  • PolynomialMultiplyWideningLower
  • PolynomialMultiplyWideningUpper
  • PopCount
  • ReciprocalEstimate
  • ReciprocalSquareRootEstimate
  • ReciprocalSquareRootStep
  • ReciprocalStep
  • ReverseElement16
  • ReverseElement32
  • ReverseElement8
  • RoundAwayFromZero
  • RoundAwayFromZeroScalar
  • RoundToNearest
  • RoundToNearestScalar
  • RoundToNegativeInfinity
  • RoundToNegativeInfinityScalar
  • RoundToPositiveInfinity
  • RoundToPositiveInfinityScalar
  • RoundToZero
  • RoundToZeroScalar
  • ShiftArithmetic
  • ShiftArithmeticRounded
  • ShiftArithmeticRoundedSaturate
  • ShiftArithmeticRoundedSaturateScalar
  • ShiftArithmeticRoundedScalar
  • ShiftArithmeticSaturate
  • ShiftArithmeticSaturateScalar
  • ShiftArithmeticScalar
  • ShiftLeftAndInsert
  • ShiftLeftAndInsertScalar
  • ShiftLeftLogical
  • ShiftLeftLogicalSaturate
  • ShiftLeftLogicalSaturateScalar
  • ShiftLeftLogicalSaturateUnsigned
  • ShiftLeftLogicalSaturateUnsignedScalar
  • ShiftLeftLogicalScalar
  • ShiftLeftLogicalWideningLower
  • ShiftLeftLogicalWideningUpper
  • ShiftLogical
  • ShiftLogicalRounded
  • ShiftLogicalRoundedSaturate
  • ShiftLogicalRoundedSaturateScalar
  • ShiftLogicalRoundedScalar
  • ShiftLogicalSaturate
  • ShiftLogicalSaturateScalar
  • ShiftLogicalScalar
  • ShiftRightAndInsert
  • ShiftRightAndInsertScalar
  • ShiftRightArithmetic
  • ShiftRightArithmeticAdd
  • ShiftRightArithmeticAddScalar
  • ShiftRightArithmeticNarrowingSaturateLower
  • ShiftRightArithmeticNarrowingSaturateUnsignedLower
  • ShiftRightArithmeticNarrowingSaturateUnsignedUpper
  • ShiftRightArithmeticNarrowingSaturateUpper
  • ShiftRightArithmeticRounded
  • ShiftRightArithmeticRoundedAdd
  • ShiftRightArithmeticRoundedAddScalar
  • ShiftRightArithmeticRoundedNarrowingSaturateLower
  • ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower
  • ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper
  • ShiftRightArithmeticRoundedNarrowingSaturateUpper
  • ShiftRightArithmeticRoundedScalar
  • ShiftRightArithmeticScalar
  • ShiftRightLogical
  • ShiftRightLogicalAdd
  • ShiftRightLogicalAddScalar
  • ShiftRightLogicalNarrowingLower
  • ShiftRightLogicalNarrowingSaturateLower
  • ShiftRightLogicalNarrowingSaturateUpper
  • ShiftRightLogicalNarrowingUpper
  • ShiftRightLogicalRounded
  • ShiftRightLogicalRoundedAdd
  • ShiftRightLogicalRoundedAddScalar
  • ShiftRightLogicalRoundedNarrowingLower
  • ShiftRightLogicalRoundedNarrowingSaturateLower
  • ShiftRightLogicalRoundedNarrowingSaturateUpper
  • ShiftRightLogicalRoundedNarrowingUpper
  • ShiftRightLogicalRoundedScalar
  • ShiftRightLogicalScalar
  • SignExtendWideningLower
  • SignExtendWideningUpper
  • SqrtScalar
  • Store
  • StoreSelectedScalar
  • Subtract
  • SubtractHighNarrowingLower
  • SubtractHighNarrowingUpper
  • SubtractRoundedHighNarrowingLower
  • SubtractRoundedHighNarrowingUpper
  • SubtractSaturate
  • SubtractSaturateScalar
  • SubtractScalar
  • SubtractWideningLower
  • SubtractWideningUpper
  • VectorTableLookup
  • VectorTableLookupExtension
  • Xor
  • ZeroExtendWideningLower
  • ZeroExtendWideningUpper

System.Runtime.Intrinsics.Arm.AdvSimd.Arm64:

  • IsSupported
  • Abs
  • AbsSaturate
  • AbsSaturateScalar
  • AbsScalar
  • AbsoluteCompareGreaterThan
  • AbsoluteCompareGreaterThanOrEqual
  • AbsoluteCompareGreaterThanOrEqualScalar
  • AbsoluteCompareGreaterThanScalar
  • AbsoluteCompareLessThan
  • AbsoluteCompareLessThanOrEqual
  • AbsoluteCompareLessThanOrEqualScalar
  • AbsoluteCompareLessThanScalar
  • AbsoluteDifference
  • AbsoluteDifferenceScalar
  • Add
  • AddAcross
  • AddAcrossWidening
  • AddPairwise
  • AddPairwiseScalar
  • AddSaturate
  • AddSaturateScalar
  • Ceiling
  • CompareEqual
  • CompareEqualScalar
  • CompareGreaterThan
  • CompareGreaterThanOrEqual
  • CompareGreaterThanOrEqualScalar
  • CompareGreaterThanScalar
  • CompareLessThan
  • CompareLessThanOrEqual
  • CompareLessThanOrEqualScalar
  • CompareLessThanScalar
  • CompareTest
  • CompareTestScalar
  • ConvertToDouble
  • ConvertToDoubleScalar
  • ConvertToDoubleUpper
  • ConvertToInt64RoundAwayFromZero
  • ConvertToInt64RoundAwayFromZeroScalar
  • ConvertToInt64RoundToEven
  • ConvertToInt64RoundToEvenScalar
  • ConvertToInt64RoundToNegativeInfinity
  • ConvertToInt64RoundToNegativeInfinityScalar
  • ConvertToInt64RoundToPositiveInfinity
  • ConvertToInt64RoundToPositiveInfinityScalar
  • ConvertToInt64RoundToZero
  • ConvertToInt64RoundToZeroScalar
  • ConvertToSingleLower
  • ConvertToSingleRoundToOddLower
  • ConvertToSingleRoundToOddUpper
  • ConvertToSingleUpper
  • ConvertToUInt64RoundAwayFromZero
  • ConvertToUInt64RoundAwayFromZeroScalar
  • ConvertToUInt64RoundToEven
  • ConvertToUInt64RoundToEvenScalar
  • ConvertToUInt64RoundToNegativeInfinity
  • ConvertToUInt64RoundToNegativeInfinityScalar
  • ConvertToUInt64RoundToPositiveInfinity
  • ConvertToUInt64RoundToPositiveInfinityScalar
  • ConvertToUInt64RoundToZero
  • ConvertToUInt64RoundToZeroScalar
  • Divide
  • DuplicateSelectedScalarToVector128
  • DuplicateToVector128
  • ExtractNarrowingSaturateScalar
  • ExtractNarrowingSaturateUnsignedScalar
  • Floor
  • FusedMultiplyAdd
  • FusedMultiplyAddByScalar
  • FusedMultiplyAddBySelectedScalar
  • FusedMultiplyAddScalarBySelectedScalar
  • FusedMultiplySubtract
  • FusedMultiplySubtractByScalar
  • FusedMultiplySubtractBySelectedScalar
  • FusedMultiplySubtractScalarBySelectedScalar
  • InsertSelectedScalar
  • LoadAndReplicateToVector128
  • Max
  • MaxAcross
  • MaxNumber
  • MaxNumberAcross
  • MaxNumberPairwise
  • MaxNumberPairwiseScalar
  • MaxPairwise
  • MaxPairwiseScalar
  • MaxScalar
  • Min
  • MinAcross
  • MinNumber
  • MinNumberAcross
  • MinNumberPairwise
  • MinNumberPairwiseScalar
  • MinPairwise
  • MinPairwiseScalar
  • MinScalar
  • Multiply
  • MultiplyByScalar
  • MultiplyBySelectedScalar
  • MultiplyDoublingSaturateHighScalar
  • MultiplyDoublingScalarBySelectedScalarSaturateHigh
  • MultiplyDoublingWideningAndAddSaturateScalar
  • MultiplyDoublingWideningAndSubtractSaturateScalar
  • MultiplyDoublingWideningSaturateScalar
  • MultiplyDoublingWideningSaturateScalarBySelectedScalar
  • MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate
  • MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate
  • MultiplyExtended
  • MultiplyExtendedByScalar
  • MultiplyExtendedBySelectedScalar
  • MultiplyExtendedScalar
  • MultiplyExtendedScalarBySelectedScalar
  • MultiplyRoundedDoublingSaturateHighScalar
  • MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh
  • MultiplyScalarBySelectedScalar
  • Negate
  • NegateSaturate
  • NegateSaturateScalar
  • NegateScalar
  • ReciprocalEstimate
  • ReciprocalEstimateScalar
  • ReciprocalExponentScalar
  • ReciprocalSquareRootEstimate
  • ReciprocalSquareRootEstimateScalar
  • ReciprocalSquareRootStep
  • ReciprocalSquareRootStepScalar
  • ReciprocalStep
  • ReciprocalStepScalar
  • ReverseElementBits
  • RoundAwayFromZero
  • RoundToNearest
  • RoundToNegativeInfinity
  • RoundToPositiveInfinity
  • RoundToZero
  • ShiftArithmeticRoundedSaturateScalar
  • ShiftArithmeticSaturateScalar
  • ShiftLeftLogicalSaturateScalar
  • ShiftLeftLogicalSaturateUnsignedScalar
  • ShiftLogicalRoundedSaturateScalar
  • ShiftLogicalSaturateScalar
  • ShiftRightArithmeticNarrowingSaturateScalar
  • ShiftRightArithmeticNarrowingSaturateUnsignedScalar
  • ShiftRightArithmeticRoundedNarrowingSaturateScalar
  • ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar
  • ShiftRightLogicalNarrowingSaturateScalar
  • ShiftRightLogicalRoundedNarrowingSaturateScalar
  • Sqrt
  • StorePair
  • StorePairNonTemporal
  • StorePairScalar
  • StorePairScalarNonTemporal
  • Subtract
  • SubtractSaturateScalar
  • TransposeEven
  • TransposeOdd
  • UnzipEven
  • UnzipOdd
  • VectorTableLookup
  • VectorTableLookupExtension
  • ZipHigh
  • ZipLow
@ghost
Copy link

ghost commented Sep 15, 2020

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

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

EgorBo commented Sep 15, 2020

that is a lot of work 🙂

@imhameed imhameed added the tracking This issue is tracking the completion of other related issues. label Oct 28, 2020
@naricc naricc self-assigned this Nov 17, 2020
@kunalspathak
Copy link
Member

In case it is helpful, I have created a reference document of ARM64 intrinsic APIs with examples and code generated.

https://kunalspathak.github.io/tags/#intrinsics

@imhameed
Copy link
Contributor Author

This was implemented in #49260.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 11, 2021
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

No branches or pull requests

7 participants