The SVE2 Math APIs don't quite match the reviews.
Reviews:
Differences:
- The args for
AddCarryWideningEven and AddCarryWideningOdd should be changed from op1,op2,op3 to left,right,carry
AddWideningEvenOdd(left, right) => AddWideningEvenOdd(leftEven, rightOdd)
DotProductRotateComplex() and DotProductRotateComplexBySelectedIndex(), the args op1,op2,op3 should be addend,left,right
AddSaturate() and SubtractSaturate() are declared as public static new. This should be public static
- The args for
SubtractWideningEvenOdd() should be changed from left,right to leftEven, rightOdd
- The args for
SubtractWideningOddEven() should be changed from left,right to leftOdd, rightEven
- The args for
SubtractBorrowWideningOdd() and SubtractBorrowWideningEven() should be changed from op1,op2,op3 to left,right,borrow
- The args for
InterleavingXorEvenOdd() should be changed from odd,left,right to odd,leftEven,rightOdd
- The args for
InterleavingXorOddEven() should be changed from even,left,right to even,leftOdd,rightEven
- The args for
AddSaturateRotateComplex() should be changed from op1,op2,rotation to left,right,rotation
- The args for
MultiplyAddRoundedDoublingSaturateHighRotateComplex() should be changed from op1,op2,op3,rotation to addend,left,right,rotation
- The args for
MultiplyAddRoundedDoublingSaturateHighRotateComplexBySelectedScalar() should be changed from op1,op2,op3,rotation to addend,left,right,rightIndex,rotation
These will require a breaking change issue raised once implemented:
Nothing to do:
The SVE2 Math APIs don't quite match the reviews.
Reviews:
Differences:
AddCarryWideningEvenandAddCarryWideningOddshould be changed fromop1,op2,op3toleft,right,carryAddWideningEvenOdd(left, right)=>AddWideningEvenOdd(leftEven, rightOdd)DotProductRotateComplex()andDotProductRotateComplexBySelectedIndex(), the argsop1,op2,op3should beaddend,left,rightAddSaturate()andSubtractSaturate()are declared aspublic static new. This should bepublic staticSubtractWideningEvenOdd()should be changed fromleft,righttoleftEven, rightOddSubtractWideningOddEven()should be changed fromleft,righttoleftOdd, rightEvenSubtractBorrowWideningOdd()andSubtractBorrowWideningEven()should be changed fromop1,op2,op3toleft,right,borrowInterleavingXorEvenOdd()should be changed fromodd,left,righttoodd,leftEven,rightOddInterleavingXorOddEven()should be changed fromeven,left,righttoeven,leftOdd,rightEvenAddSaturateRotateComplex()should be changed fromop1,op2,rotationtoleft,right,rotationMultiplyAddRoundedDoublingSaturateHighRotateComplex()should be changed fromop1,op2,op3,rotationtoaddend,left,right,rotationMultiplyAddRoundedDoublingSaturateHighRotateComplexBySelectedScalar()should be changed fromop1,op2,op3,rotationtoaddend,left,right,rightIndex,rotationThese will require a breaking change issue raised once implemented:
AddSaturateWithUnsignedAddend()andAddSaturateWithSignedAddend()should be renamed toAddSaturate()to match the existingAddSaturate()function.evenadded toConvertToSingleOddRoundToOdd().Nothing to do:
ShiftLeftLogicalWideningEven()andShiftLeftLogicalWideningOdd()was reviewed in both [API Proposal]: Arm64: FEAT_SVE2: bitwise #94015 (withcountfor arg2) and [API Proposal]: Arm64: FEAT_SVE2: bit manipulate #94020 (withshiftAmountfor arg2). It shouldn't really have been in the second set. Given that all other shift APIs usecountthen we should stick with that. Therefore nothing needs changing for this issue.