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

[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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
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