From b17fa8f5df7810dd399c6b3dc4a97423b969105a Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Wed, 4 Oct 2023 21:37:42 -0700 Subject: [PATCH] Arm64: Implement LoadVector64x* and LoadVector128x* APIs (#92855) * Add APIs for LoadVector*x2 * Add implementation for LoadVector*x2 * Add APIs for LoadVector*x3 * Add implementation for LoadVector*x3 * Add APIs for LoadVector*x4 * Add implementation for LoadVector*x4 * Add test cases for LoadVectorx2, LoadVectorx3, LoadVectorx4 * minor rename * REVERT: Add Debug.Assert(false) to make sure test runs * Retain gtOtherReg rather than making it an array * Revert "REVERT: Add Debug.Assert(false) to make sure test runs" This reverts commit 92fb2795723629873244a8deb8a5245cd20b8146. * fix the test template * fix the LoadVectorx4 template * address review comment * fix one more error in LoadVectorx4Test.template * feedback by Bruce * Rename the test case name * Disable test for mono --- src/coreclr/jit/gentree.cpp | 30 +- src/coreclr/jit/gentree.h | 67 +- src/coreclr/jit/hwintrinsic.h | 10 + src/coreclr/jit/hwintrinsicarm64.cpp | 8 + src/coreclr/jit/hwintrinsiccodegenarm64.cpp | 5 +- src/coreclr/jit/hwintrinsiclistarm64.h | 6 + src/coreclr/jit/lsra.cpp | 4 +- src/coreclr/jit/lsra.h | 1 + src/coreclr/jit/lsraarm64.cpp | 74 +- .../Arm/AdvSimd.PlatformNotSupported.cs | 255 ++++ .../System/Runtime/Intrinsics/Arm/AdvSimd.cs | 255 ++++ .../ref/System.Runtime.Intrinsics.cs | 1117 +++++++++-------- .../GenerateHWIntrinsicTests_Arm.cs | 55 +- .../Arm/Shared/LoadVectorx2Test.template | 280 +++++ .../Arm/Shared/LoadVectorx3Test.template | 297 +++++ .../Arm/Shared/LoadVectorx4Test.template | 314 +++++ 16 files changed, 2224 insertions(+), 554 deletions(-) create mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx2Test.template create mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx3Test.template create mode 100644 src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx4Test.template diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index f0ffca4a5ef08..3d708d23dfd08 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -1033,6 +1033,19 @@ unsigned GenTree::GetMultiRegCount(Compiler* comp) const return 1; } +#ifdef TARGET_ARM64 +//----------------------------------------------------------------------------------- +// NeedsConsecutiveRegisters: Checks if this tree node needs consecutive registers +// +// Return Value: +// Returns if the tree needs consecutive registers. +// +bool GenTree::NeedsConsecutiveRegisters() const +{ + return HWIntrinsicInfo::NeedsConsecutiveRegisters(AsHWIntrinsic()->GetHWIntrinsicId()); +} +#endif + //--------------------------------------------------------------- // gtGetContainedRegMask: Get the reg mask of the node including // contained nodes (recursive). @@ -3438,7 +3451,7 @@ unsigned Compiler::gtHashValue(GenTree* tree) hash += tree->AsHWIntrinsic()->GetSimdBaseType(); hash += tree->AsHWIntrinsic()->GetSimdSize(); hash += tree->AsHWIntrinsic()->GetAuxiliaryType(); - hash += tree->AsHWIntrinsic()->GetOtherReg(); + hash += tree->AsHWIntrinsic()->GetRegByIndex(1); break; #endif // FEATURE_HW_INTRINSICS @@ -25538,11 +25551,24 @@ ClassLayout* GenTreeHWIntrinsic::GetLayout(Compiler* compiler) const case NI_AdvSimd_Arm64_LoadPairScalarVector64NonTemporal: case NI_AdvSimd_Arm64_LoadPairVector64: case NI_AdvSimd_Arm64_LoadPairVector64NonTemporal: + case NI_AdvSimd_LoadVector64x2: return compiler->typGetBlkLayout(16); case NI_AdvSimd_Arm64_LoadPairVector128: case NI_AdvSimd_Arm64_LoadPairVector128NonTemporal: + case NI_AdvSimd_Arm64_LoadVector128x2: + case NI_AdvSimd_LoadVector64x4: return compiler->typGetBlkLayout(32); + + case NI_AdvSimd_LoadVector64x3: + return compiler->typGetBlkLayout(24); + + case NI_AdvSimd_Arm64_LoadVector128x3: + return compiler->typGetBlkLayout(48); + + case NI_AdvSimd_Arm64_LoadVector128x4: + return compiler->typGetBlkLayout(64); + #endif // TARGET_ARM64 default: @@ -25579,7 +25605,7 @@ void GenTreeHWIntrinsic::SetHWIntrinsicId(NamedIntrinsic intrinsicId) { return (op1->TypeGet() == op2->TypeGet()) && (op1->GetHWIntrinsicId() == op2->GetHWIntrinsicId()) && (op1->GetSimdBaseType() == op2->GetSimdBaseType()) && (op1->GetSimdSize() == op2->GetSimdSize()) && - (op1->GetAuxiliaryType() == op2->GetAuxiliaryType()) && (op1->GetOtherReg() == op2->GetOtherReg()) && + (op1->GetAuxiliaryType() == op2->GetAuxiliaryType()) && (op1->GetRegByIndex(1) == op2->GetRegByIndex(1)) && OperandsAreEqual(op1, op2); } diff --git a/src/coreclr/jit/gentree.h b/src/coreclr/jit/gentree.h index 525d55d94ecf4..635e97e7072a2 100644 --- a/src/coreclr/jit/gentree.h +++ b/src/coreclr/jit/gentree.h @@ -1836,6 +1836,10 @@ struct GenTree // Sets the GTF flag equivalent for the regIndex'th register of a multi-reg node. void SetRegSpillFlagByIdx(GenTreeFlags flags, int regIndex); +#ifdef TARGET_ARM64 + bool NeedsConsecutiveRegisters() const; +#endif + // Last-use information for either GenTreeLclVar or GenTreeCopyOrReload nodes. private: GenTreeFlags GetLastUseBit(int regIndex) const; @@ -3646,7 +3650,7 @@ struct GenTreeLclVar : public GenTreeLclVarCommon } else { - gtOtherReg[regIndex - 1] = regNumberSmall(reg); + gtOtherReg[regIndex - 1] = (regNumberSmall)reg; } } @@ -6085,15 +6089,66 @@ struct GenTreeJitIntrinsic : public GenTreeMultiOp NamedIntrinsic gtHWIntrinsicId; public: - regNumber GetOtherReg() const + //----------------------------------------------------------- + // GetRegNumByIdx: Get regNumber of i'th position. + // + // Arguments: + // idx - register position. + // + // Return Value: + // Returns regNumber assigned to i'th position. + // + regNumber GetRegNumByIdx(unsigned idx) const { +#ifdef TARGET_ARM64 + assert(idx < MAX_MULTIREG_COUNT); + + if (idx == 0) + { + return GetRegNum(); + } + + if (NeedsConsecutiveRegisters()) + { + assert(IsMultiRegNode()); + return (regNumber)(GetRegNum() + idx); + } +#endif + // should only be used to get otherReg + assert(idx == 1); return (regNumber)gtOtherReg; } - void SetOtherReg(regNumber reg) + //----------------------------------------------------------- + // SetRegNumByIdx: Set the regNumber for i'th position. + // + // Arguments: + // reg - reg number + // idx - register position. + // + // Return Value: + // None. + // + void SetRegNumByIdx(regNumber reg, unsigned idx) { +#ifdef TARGET_ARM64 + assert(idx < MAX_MULTIREG_COUNT); + + if (idx == 0) + { + SetRegNum(reg); + return; + } + if (NeedsConsecutiveRegisters()) + { + assert(IsMultiRegNode()); + assert(reg == (regNumber)(GetRegNum() + idx)); + return; + } +#endif + // should only be used to set otherReg + assert(idx == 1); gtOtherReg = (regNumberSmall)reg; - assert(gtOtherReg == reg); } GenTreeFlags GetRegSpillFlagByIdx(unsigned idx) const @@ -9323,9 +9378,7 @@ inline regNumber GenTree::GetRegByIndex(int regIndex) const #ifdef FEATURE_HW_INTRINSICS if (OperIs(GT_HWINTRINSIC)) { - assert(regIndex == 1); - // TODO-ARM64-NYI: Support hardware intrinsics operating on multiple contiguous registers. - return AsHWIntrinsic()->GetOtherReg(); + return AsHWIntrinsic()->GetRegNumByIdx(regIndex); } #endif // FEATURE_HW_INTRINSICS diff --git a/src/coreclr/jit/hwintrinsic.h b/src/coreclr/jit/hwintrinsic.h index 11e8c376a1a73..6ae651c7987b6 100644 --- a/src/coreclr/jit/hwintrinsic.h +++ b/src/coreclr/jit/hwintrinsic.h @@ -769,7 +769,17 @@ struct HWIntrinsicInfo case NI_AdvSimd_Arm64_LoadPairVector64NonTemporal: case NI_AdvSimd_Arm64_LoadPairVector128: case NI_AdvSimd_Arm64_LoadPairVector128NonTemporal: + case NI_AdvSimd_LoadVector64x2: + case NI_AdvSimd_Arm64_LoadVector128x2: return 2; + + case NI_AdvSimd_LoadVector64x3: + case NI_AdvSimd_Arm64_LoadVector128x3: + return 3; + + case NI_AdvSimd_LoadVector64x4: + case NI_AdvSimd_Arm64_LoadVector128x4: + return 4; #endif #ifdef TARGET_XARCH diff --git a/src/coreclr/jit/hwintrinsicarm64.cpp b/src/coreclr/jit/hwintrinsicarm64.cpp index 0234f4ed23cfa..13cf5ae5dee8f 100644 --- a/src/coreclr/jit/hwintrinsicarm64.cpp +++ b/src/coreclr/jit/hwintrinsicarm64.cpp @@ -1877,6 +1877,14 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, break; } + case NI_AdvSimd_LoadVector64x2: + case NI_AdvSimd_LoadVector64x3: + case NI_AdvSimd_LoadVector64x4: + case NI_AdvSimd_Arm64_LoadVector128x2: + case NI_AdvSimd_Arm64_LoadVector128x3: + case NI_AdvSimd_Arm64_LoadVector128x4: + info.compNeedsConsecutiveRegisters = true; + FALLTHROUGH; case NI_AdvSimd_Arm64_LoadPairScalarVector64: case NI_AdvSimd_Arm64_LoadPairScalarVector64NonTemporal: case NI_AdvSimd_Arm64_LoadPairVector128: diff --git a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp index 2e2254faa19bf..4a013ca084cd5 100644 --- a/src/coreclr/jit/hwintrinsiccodegenarm64.cpp +++ b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp @@ -732,12 +732,13 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node) case NI_AdvSimd_Arm64_LoadPairVector128NonTemporal: case NI_AdvSimd_Arm64_LoadPairVector64: case NI_AdvSimd_Arm64_LoadPairVector64NonTemporal: - GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, node->GetOtherReg(), op1Reg); + GetEmitter()->emitIns_R_R_R(ins, emitSize, targetReg, node->GetRegByIndex(1), op1Reg); break; case NI_AdvSimd_Arm64_LoadPairScalarVector64: case NI_AdvSimd_Arm64_LoadPairScalarVector64NonTemporal: - GetEmitter()->emitIns_R_R_R(ins, emitTypeSize(intrin.baseType), targetReg, node->GetOtherReg(), op1Reg); + GetEmitter()->emitIns_R_R_R(ins, emitTypeSize(intrin.baseType), targetReg, node->GetRegByIndex(1), + op1Reg); break; case NI_AdvSimd_StoreSelectedScalar: diff --git a/src/coreclr/jit/hwintrinsiclistarm64.h b/src/coreclr/jit/hwintrinsiclistarm64.h index d0fdc1be6da7a..da77e3fdfabd5 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64.h +++ b/src/coreclr/jit/hwintrinsiclistarm64.h @@ -320,6 +320,9 @@ HARDWARE_INTRINSIC(AdvSimd, LoadAndReplicateToVector64, HARDWARE_INTRINSIC(AdvSimd, LoadAndReplicateToVector128, 16, 1, true, {INS_ld1r, INS_ld1r, INS_ld1r, INS_ld1r, INS_ld1r, INS_ld1r, INS_invalid, INS_invalid, INS_ld1r, INS_invalid}, HW_Category_MemoryLoad, HW_Flag_NoFlag) HARDWARE_INTRINSIC(AdvSimd, LoadVector64, 8, 1, true, {INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1}, HW_Category_Helper, HW_Flag_SpecialImport|HW_Flag_NoCodeGen) HARDWARE_INTRINSIC(AdvSimd, LoadVector128, 16, 1, true, {INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1, INS_ld1}, HW_Category_Helper, HW_Flag_SpecialImport|HW_Flag_NoCodeGen) +HARDWARE_INTRINSIC(AdvSimd, LoadVector64x2, 8, 1, true, {INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_invalid, INS_invalid, INS_ld2, INS_invalid}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) +HARDWARE_INTRINSIC(AdvSimd, LoadVector64x3, 8, 1, true, {INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_invalid, INS_invalid, INS_ld3, INS_invalid}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) +HARDWARE_INTRINSIC(AdvSimd, LoadVector64x4, 8, 1, true, {INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_invalid, INS_invalid, INS_ld4, INS_invalid}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) HARDWARE_INTRINSIC(AdvSimd, Max, -1, 2, true, {INS_smax, INS_umax, INS_smax, INS_umax, INS_smax, INS_umax, INS_invalid, INS_invalid, INS_fmax, INS_invalid}, HW_Category_SIMD, HW_Flag_Commutative) HARDWARE_INTRINSIC(AdvSimd, MaxNumber, -1, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_fmaxnm, INS_invalid}, HW_Category_SIMD, HW_Flag_Commutative) HARDWARE_INTRINSIC(AdvSimd, MaxNumberScalar, 8, 2, true, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_fmaxnm, INS_fmaxnm}, HW_Category_SIMD, HW_Flag_Commutative|HW_Flag_SIMDScalar) @@ -573,6 +576,9 @@ HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadPairVector64, HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadPairVector64NonTemporal, 8, 1, true, {INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_MultiReg|HW_Flag_SpecialCodeGen|HW_Flag_SpecialImport) HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadPairVector128, 16, 1, true, {INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp, INS_ldp}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_MultiReg|HW_Flag_SpecialCodeGen|HW_Flag_SpecialImport) HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadPairVector128NonTemporal, 16, 1, true, {INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp, INS_ldnp}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_MultiReg|HW_Flag_SpecialCodeGen|HW_Flag_SpecialImport) +HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadVector128x2, 16, 1, true, {INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2, INS_ld2}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) +HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadVector128x3, 16, 1, true, {INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3, INS_ld3}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) +HARDWARE_INTRINSIC(AdvSimd_Arm64, LoadVector128x4, 16, 1, true, {INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4, INS_ld4}, HW_Category_MemoryLoad, HW_Flag_BaseTypeFromFirstArg|HW_Flag_SpecialImport|HW_Flag_MultiReg|HW_Flag_NeedsConsecutiveRegisters) HARDWARE_INTRINSIC(AdvSimd_Arm64, Max, 16, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_fmax}, HW_Category_SIMD, HW_Flag_Commutative) HARDWARE_INTRINSIC(AdvSimd_Arm64, MaxAcross, -1, 1, true, {INS_smaxv, INS_umaxv, INS_smaxv, INS_umaxv, INS_smaxv, INS_umaxv, INS_invalid, INS_invalid, INS_fmaxv, INS_invalid}, HW_Category_SIMD, HW_Flag_BaseTypeFromFirstArg) HARDWARE_INTRINSIC(AdvSimd_Arm64, MaxNumber, 16, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_fmaxnm}, HW_Category_SIMD, HW_Flag_Commutative) diff --git a/src/coreclr/jit/lsra.cpp b/src/coreclr/jit/lsra.cpp index 88af18d880898..338c541ce2ebb 100644 --- a/src/coreclr/jit/lsra.cpp +++ b/src/coreclr/jit/lsra.cpp @@ -155,9 +155,7 @@ void lsraAssignRegToTree(GenTree* tree, regNumber reg, unsigned regIdx) #ifdef FEATURE_HW_INTRINSICS else if (tree->OperIs(GT_HWINTRINSIC)) { - assert(regIdx == 1); - // TODO-ARM64-NYI: Support hardware intrinsics operating on multiple contiguous registers. - tree->AsHWIntrinsic()->SetOtherReg(reg); + tree->AsHWIntrinsic()->SetRegNumByIdx(reg, regIdx); } #endif // FEATURE_HW_INTRINSICS else if (tree->OperIs(GT_LCL_VAR, GT_STORE_LCL_VAR)) diff --git a/src/coreclr/jit/lsra.h b/src/coreclr/jit/lsra.h index 41fcc7e5d09b2..d0f7aeb836969 100644 --- a/src/coreclr/jit/lsra.h +++ b/src/coreclr/jit/lsra.h @@ -2011,6 +2011,7 @@ class LinearScan : public LinearScanInterface int BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree, int* pDstCount); #ifdef TARGET_ARM64 int BuildConsecutiveRegistersForUse(GenTree* treeNode, GenTree* rmwNode = nullptr); + void BuildConsecutiveRegistersForDef(GenTree* treeNode, int fieldCount); #endif // TARGET_ARM64 #endif // FEATURE_HW_INTRINSICS diff --git a/src/coreclr/jit/lsraarm64.cpp b/src/coreclr/jit/lsraarm64.cpp index 33dfe726407bf..2b94d8ca1ce6b 100644 --- a/src/coreclr/jit/lsraarm64.cpp +++ b/src/coreclr/jit/lsraarm64.cpp @@ -102,7 +102,7 @@ void LinearScan::assignConsecutiveRegisters(RefPosition* firstRefPosition, regNu } #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE INDEBUG(refPosCount++); - assert(consecutiveRefPosition->refType == RefTypeUse); + assert((consecutiveRefPosition->refType == RefTypeDef) || (consecutiveRefPosition->refType == RefTypeUse)); consecutiveRefPosition->registerAssignment = genRegMask(regToAssign); consecutiveRefPosition = getNextConsecutiveRefPosition(consecutiveRefPosition); regToAssign = regToAssign == REG_FP_LAST ? REG_FP_FIRST : REG_NEXT(regToAssign); @@ -1586,6 +1586,18 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree, int* pDstCou buildInternalRegisterUses(); *pDstCount = 0; break; + case NI_AdvSimd_LoadVector64x2: + case NI_AdvSimd_LoadVector64x3: + case NI_AdvSimd_LoadVector64x4: + case NI_AdvSimd_Arm64_LoadVector128x2: + case NI_AdvSimd_Arm64_LoadVector128x3: + case NI_AdvSimd_Arm64_LoadVector128x4: + { + assert(intrin.op1 != nullptr); + BuildConsecutiveRegistersForDef(intrinsicTree, dstCount); + *pDstCount = dstCount; + break; + } default: noway_assert(!"Not a supported as multiple consecutive register intrinsic"); } @@ -1689,7 +1701,7 @@ int LinearScan::BuildConsecutiveRegistersForUse(GenTree* treeNode, GenTree* rmwN int srcCount = 0; Interval* rmwInterval = nullptr; bool rmwIsLastUse = false; - if ((rmwNode != nullptr)) + if (rmwNode != nullptr) { if (isCandidateLocalRef(rmwNode)) { @@ -1711,9 +1723,10 @@ int LinearScan::BuildConsecutiveRegistersForUse(GenTree* treeNode, GenTree* rmwN { RefPosition* restoreRefPos = nullptr; RefPositionIterator prevRefPos = refPositions.backPosition(); - currRefPos = BuildUse(use.GetNode(), RBM_NONE, 0); - // Check if restore Refpositions were created + currRefPos = BuildUse(use.GetNode(), RBM_NONE, 0); + + // Check if restore RefPositions were created RefPositionIterator tailRefPos = refPositions.backPosition(); assert(tailRefPos == currRefPos); prevRefPos++; @@ -1801,7 +1814,7 @@ int LinearScan::BuildConsecutiveRegistersForUse(GenTree* treeNode, GenTree* rmwN if (rmwNode != nullptr) { - // Check all the newly created Refpositions for delay free + // Check all the newly created RefPositions for delay free RefPositionIterator iter = refPositionMark; for (iter++; iter != refPositions.end(); iter++) @@ -1822,6 +1835,57 @@ int LinearScan::BuildConsecutiveRegistersForUse(GenTree* treeNode, GenTree* rmwN return srcCount; } +//------------------------------------------------------------------------ +// BuildConsecutiveRegistersForDef: Build RefTypeDef ref position(s) for +// `treeNode` that produces `registerCount` consecutive registers. +// +// For the first RefPosition of the series, it sets the `regCount` field equal to +// the total number of RefPositions (including the first one) involved for this +// treeNode. For the subsequent RefPositions, it sets the `regCount` to 0. For all +// the RefPositions created, it sets the `needsConsecutive` flag so it can be used to +// identify these RefPositions during allocation. +// +// It also populates a `RefPositionMap` to access the subsequent RefPositions from +// a given RefPosition. This was preferred rather than adding a field in RefPosition +// for this purpose. +// +// Arguments: +// treeNode - The GT_HWINTRINSIC node of interest +// registerCount - Number of registers the treeNode produces +// +void LinearScan::BuildConsecutiveRegistersForDef(GenTree* treeNode, int registerCount) +{ + assert(registerCount > 1); + assert(compiler->info.compNeedsConsecutiveRegisters); + + RefPosition* currRefPos = nullptr; + RefPosition* lastRefPos = nullptr; + + NextConsecutiveRefPositionsMap* refPositionMap = getNextConsecutiveRefPositionsMap(); + for (int fieldIdx = 0; fieldIdx < registerCount; fieldIdx++) + { + currRefPos = BuildDef(treeNode, RBM_NONE, fieldIdx); + currRefPos->needsConsecutive = true; + currRefPos->regCount = 0; +#ifdef DEBUG + // Set the minimum register candidates needed for stress to work. + currRefPos->minRegCandidateCount = registerCount; +#endif + if (fieldIdx == 0) + { + // Set `regCount` to actual consecutive registers count for first ref-position. + // For others, set 0 so we can identify that this is non-first RefPosition. + + currRefPos->regCount = registerCount; + } + + refPositionMap->Set(lastRefPos, currRefPos, LinearScan::NextConsecutiveRefPositionsMap::Overwrite); + refPositionMap->Set(currRefPos, nullptr); + + lastRefPos = currRefPos; + } +} + #ifdef DEBUG //------------------------------------------------------------------------ // isLiveAtConsecutiveRegistersLoc: Check if the refPosition is live at the location diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs index 2eb823f56d97d..a5cbc8ac08bf1 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs @@ -1798,6 +1798,156 @@ internal Arm64() { } /// public static unsafe (Vector128 Value1, Vector128 Value2) LoadPairVector128NonTemporal(ulong* address) { throw new PlatformNotSupportedException(); } + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(long* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ulong* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(double* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(long* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ulong* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(double* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(long* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D}, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ulong* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(double* address) { throw new PlatformNotSupportedException(); } + /// /// float64x2_t vmaxq_f64 (float64x2_t a, float64x2_t b) /// A64: FMAX Vd.2D, Vn.2D, Vm.2D @@ -8377,6 +8527,111 @@ internal Arm64() { } /// public static unsafe Vector128 LoadVector128(ulong* address) { throw new PlatformNotSupportedException(); } + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(float* address) { throw new PlatformNotSupportedException(); } + /// /// uint8x8_t vmax_u8 (uint8x8_t a, uint8x8_t b) /// A32: VMAX.U8 Dd, Dn, Dm diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.cs index 5d22812bcd9ff..60c0f00289291 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/AdvSimd.cs @@ -1796,6 +1796,156 @@ internal Arm64() { } /// public static unsafe (Vector128 Value1, Vector128 Value2) LoadPairVector128NonTemporal(ulong* address) => LoadPairVector128NonTemporal(address); + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(byte* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(sbyte* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(short* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ushort* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(int* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(uint* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(long* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ulong* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(float* address) => LoadVector128x2(address); + + /// + /// A64: LD2 { Vn.2D, Vn+1.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(double* address) => LoadVector128x2(address); + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(byte* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(sbyte* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(short* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ushort* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(int* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(uint* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(long* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ulong* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(float* address) => LoadVector128x3(address); + + /// + /// A64: LD3 { Vn.2D, Vn+1.2D, Vn+2.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(double* address) => LoadVector128x3(address); + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(byte* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(sbyte* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(short* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ushort* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(int* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(uint* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(long* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D}, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ulong* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(float* address) => LoadVector128x4(address); + + /// + /// A64: LD4 { Vn.2D, Vn+1.2D, Vn+2.2D, Vn+3.2D }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(double* address) => LoadVector128x4(address); + /// /// float64x2_t vmaxq_f64 (float64x2_t a, float64x2_t b) /// A64: FMAX Vd.2D, Vn.2D, Vm.2D @@ -8374,6 +8524,111 @@ internal Arm64() { } /// public static unsafe Vector128 LoadVector128(ulong* address) => LoadVector128(address); + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(byte* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.16B, Vn+1.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(sbyte* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(short* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.8H, Vn+1.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(ushort* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(int* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn]128x4 + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(uint* address) => LoadVector64x2(address); + + /// + /// A64: LD2 { Vn.4S, Vn+1.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(float* address) => LoadVector64x2(address); + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(byte* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.16B, Vn+1.16B, Vn+2.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(sbyte* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(short* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.8H, Vn+1.8H, Vn+2.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(ushort* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(int* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(uint* address) => LoadVector64x3(address); + + /// + /// A64: LD3 { Vn.4S, Vn+1.4S, Vn+2.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(float* address) => LoadVector64x3(address); + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(byte* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.16B, Vn+1.16B, Vn+2.16B, Vn+3.16B }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(sbyte* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(short* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.8H, Vn+1.8H, Vn+2.8H, Vn+3.8H }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(ushort* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(int* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(uint* address) => LoadVector64x4(address); + + /// + /// A64: LD4 { Vn.4S, Vn+1.4S, Vn+2.4S, Vn+3.4S }, [Xn] + /// + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(float* address) => LoadVector64x4(address); + /// /// uint8x8_t vmax_u8 (uint8x8_t a, uint8x8_t b) /// A32: VMAX.U8 Dd, Dn, Dm diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index cf68330357b7a..51a2375fd6b1c 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -1867,57 +1867,78 @@ internal AdvSimd() { } public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index, byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index, sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector64 LoadVector64(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index, byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index, sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index, sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index, ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index, uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadVector64x2(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3) LoadVector64x3(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2, System.Runtime.Intrinsics.Vector64 Value3, System.Runtime.Intrinsics.Vector64 Value4) LoadVector64x4(float* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -2751,43 +2772,43 @@ internal AdvSimd() { } public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 SqrtScalar(System.Runtime.Intrinsics.Vector64 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 SqrtScalar(System.Runtime.Intrinsics.Vector64 value) { throw null; } - public unsafe static void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(byte* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(double* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(short* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(short* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(int* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(int* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(long* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(long* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(sbyte* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(float* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(float* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(ushort* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(uint* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(ulong* address, System.Runtime.Intrinsics.Vector64 source) { } - public unsafe static void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { } - public unsafe static void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } - public unsafe static void StoreSelectedScalar(double* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } - public unsafe static void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } - public unsafe static void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } - public unsafe static void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } - public unsafe static void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } - public unsafe static void StoreSelectedScalar(long* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } - public unsafe static void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { } - public unsafe static void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } - public unsafe static void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } - public unsafe static void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } - public unsafe static void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } - public unsafe static void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } - public unsafe static void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } - public unsafe static void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } - public unsafe static void StoreSelectedScalar(ulong* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector64 source) { } + public static unsafe void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { } + public static unsafe void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } + public static unsafe void StoreSelectedScalar(double* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } + public static unsafe void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } + public static unsafe void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } + public static unsafe void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void StoreSelectedScalar(long* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { } + public static unsafe void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } + public static unsafe void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } + public static unsafe void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { } + public static unsafe void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } + public static unsafe void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { } + public static unsafe void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } + public static unsafe void StoreSelectedScalar(ulong* address, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { } public unsafe static void StoreVector64x2(byte* address, (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) value) { throw null; } public unsafe static void StoreVector64x2(sbyte* address, (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) value) { throw null; } public unsafe static void StoreVector64x2(short* address, (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) value) { throw null; } @@ -3163,55 +3184,85 @@ internal Arm64() { } public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte resultIndex, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte valueIndex) { throw null; } public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte resultIndex, System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte valueIndex) { throw null; } public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte resultIndex, System.Runtime.Intrinsics.Vector64 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte valueIndex) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ulong* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(byte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(double* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(short* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(long* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(sbyte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ushort* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ulong* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(byte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(double* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(short* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(long* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(sbyte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ushort* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ulong* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(byte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(double* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(short* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(long* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(sbyte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ushort* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ulong* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(byte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(double* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(short* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(int* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(long* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(sbyte* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(float* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ushort* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(uint* address) { throw null; } - public unsafe static (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadVector128x2(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3) LoadVector128x3(double* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(byte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(sbyte* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(short* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ushort* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(int* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(uint* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(long* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(ulong* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(float* address) { throw null; } + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2, System.Runtime.Intrinsics.Vector128 Value3, System.Runtime.Intrinsics.Vector128 Value4) LoadVector128x4(double* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) { throw null; } @@ -3407,52 +3458,52 @@ internal Arm64() { } public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector64 Sqrt(System.Runtime.Intrinsics.Vector64 value) { throw null; } - public unsafe static void StorePair(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePair(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePair(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } - public unsafe static void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalar(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalar(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalar(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalarNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalarNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } - public unsafe static void StorePairScalarNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePair(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePair(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) { } + public static unsafe void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalar(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalar(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalar(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalarNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalarNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } + public static unsafe void StorePairScalarNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) { } public unsafe static void StoreVector128x2(byte* address, (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) value) { throw null; } public unsafe static void StoreVector128x2(sbyte* address, (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) value) { throw null; } public unsafe static void StoreVector128x2(short* address, (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) value) { throw null; } @@ -3791,11 +3842,11 @@ internal Avx() { } public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) { throw null; } public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(float* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(double* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(float* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(float* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(double* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(float* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(float* address) { throw null; } public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 Compare(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = System.Runtime.Intrinsics.X86.FloatComparisonMode.UnorderedTrueSignaling)] System.Runtime.Intrinsics.X86.FloatComparisonMode mode) { throw null; } @@ -3868,42 +3919,42 @@ internal Avx() { } public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadDquVector256(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadVector256(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(double* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(double* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(float* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(float* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static void MaskStore(double* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(double* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void MaskStore(float* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(float* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(double* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(double* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(float* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(float* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe void MaskStore(double* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(double* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void MaskStore(float* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(float* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } @@ -3948,36 +3999,36 @@ public unsafe static void MaskStore(float* address, System.Runtime.Intrinsics.Ve public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 value) { throw null; } - public unsafe static void Store(byte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(double* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(short* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(int* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(long* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(float* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(uint* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void Store(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(double* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(short* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(int* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(long* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(float* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(double* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(short* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(int* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(long* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(float* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector256 source) { } public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -4088,10 +4139,10 @@ internal Avx2() { } public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) { throw null; } public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) { throw null; } public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(byte* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(short* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(int* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(long* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(byte* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(short* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(int* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(long* source) { throw null; } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } @@ -4102,14 +4153,14 @@ internal Avx2() { } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(sbyte* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ushort* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(uint* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ulong* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(byte* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(short* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(int* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(long* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(sbyte* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ushort* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(uint* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ulong* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(byte* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(short* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(int* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(long* source) { throw null; } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } @@ -4120,18 +4171,18 @@ internal Avx2() { } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(sbyte* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ushort* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(uint* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ulong* source) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(sbyte* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ushort* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(uint* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ulong* source) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ulong* address) { throw null; } public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } @@ -4146,30 +4197,30 @@ internal Avx2() { } public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static int ConvertToInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector256 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(byte* address) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(short* address) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(int* address) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(uint* address) { throw null; } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } @@ -4178,54 +4229,54 @@ internal Avx2() { } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Min = (byte)(1), Max = (byte)(8))] byte scale) { throw null; } public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 HorizontalAddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } @@ -4240,30 +4291,30 @@ internal Avx2() { } public static new System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static new System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(int* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(int* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(long* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(long* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector256 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } - public unsafe static void MaskStore(int* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(int* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void MaskStore(long* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(long* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void MaskStore(uint* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(uint* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } - public unsafe static void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(int* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(int* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(long* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(long* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector128 mask) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector256 mask) { throw null; } + public static unsafe void MaskStore(int* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(int* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void MaskStore(long* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(long* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void MaskStore(uint* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(uint* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } + public static unsafe void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) { } public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) { throw null; } @@ -5040,16 +5091,16 @@ internal Avx512F() { } public static System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector512 InsertVector256(System.Runtime.Intrinsics.Vector512 value, System.Runtime.Intrinsics.Vector256 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512(ulong* address) { throw null; } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(byte* address) { throw null; } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(short* address) { throw null; } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(int* address) { throw null; } @@ -5058,16 +5109,16 @@ internal Avx512F() { } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(ushort* address) { throw null; } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(uint* address) { throw null; } public static unsafe System.Runtime.Intrinsics.Vector512 LoadAlignedVector512NonTemporal(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector512 LoadVector512(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector512 LoadVector512(ulong* address) { throw null; } public static System.Runtime.Intrinsics.Vector512 Max(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } public static System.Runtime.Intrinsics.Vector512 Max(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } public static System.Runtime.Intrinsics.Vector512 Max(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } @@ -5193,36 +5244,36 @@ internal Avx512F() { } public static System.Runtime.Intrinsics.Vector512 Shuffle4x128(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } public static System.Runtime.Intrinsics.Vector512 Sqrt(System.Runtime.Intrinsics.Vector512 value) { throw null; } public static System.Runtime.Intrinsics.Vector512 Sqrt(System.Runtime.Intrinsics.Vector512 value) { throw null; } - public unsafe static void Store(byte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(double* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(short* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(int* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(long* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(float* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(uint* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void Store(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(double* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(short* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(int* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(long* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(float* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector512 source) { } - public unsafe static void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(double* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(short* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(int* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(long* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(float* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector512 source) { } + public static unsafe void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector512 source) { } public static System.Runtime.Intrinsics.Vector512 Subtract(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } public static System.Runtime.Intrinsics.Vector512 Subtract(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } public static System.Runtime.Intrinsics.Vector512 Subtract(System.Runtime.Intrinsics.Vector512 left, System.Runtime.Intrinsics.Vector512 right) { throw null; } @@ -5588,7 +5639,7 @@ public abstract partial class Bmi2 : System.Runtime.Intrinsics.X86.X86Base internal Bmi2() { } public static new bool IsSupported { get { throw null; } } public static uint MultiplyNoFlags(uint left, uint right) { throw null; } - public unsafe static uint MultiplyNoFlags(uint left, uint right, uint* low) { throw null; } + public static unsafe uint MultiplyNoFlags(uint left, uint right, uint* low) { throw null; } public static uint ParallelBitDeposit(uint value, uint mask) { throw null; } public static uint ParallelBitExtract(uint value, uint mask) { throw null; } public static uint ZeroHighBits(uint value, uint index) { throw null; } @@ -5597,7 +5648,7 @@ internal Bmi2() { } internal X64() { } public static new bool IsSupported { get { throw null; } } public static ulong MultiplyNoFlags(ulong left, ulong right) { throw null; } - public unsafe static ulong MultiplyNoFlags(ulong left, ulong right, ulong* low) { throw null; } + public static unsafe ulong MultiplyNoFlags(ulong left, ulong right, ulong* low) { throw null; } public static ulong ParallelBitDeposit(ulong value, ulong mask) { throw null; } public static ulong ParallelBitExtract(ulong value, ulong mask) { throw null; } public static ulong ZeroHighBits(ulong value, ulong index) { throw null; } @@ -5770,11 +5821,11 @@ internal Sse() { } public static int ConvertToInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 DivideScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(float* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(float* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 MaxScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -5786,10 +5837,10 @@ internal Sse() { } public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 MultiplyScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } - public unsafe static void Prefetch0(void* address) { } - public unsafe static void Prefetch1(void* address) { } - public unsafe static void Prefetch2(void* address) { } - public unsafe static void PrefetchNonTemporal(void* address) { } + public static unsafe void Prefetch0(void* address) { } + public static unsafe void Prefetch1(void* address) { } + public static unsafe void Prefetch2(void* address) { } + public static unsafe void PrefetchNonTemporal(void* address) { } public static System.Runtime.Intrinsics.Vector128 Reciprocal(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ReciprocalScalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ReciprocalScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } @@ -5800,13 +5851,13 @@ public unsafe static void PrefetchNonTemporal(void* address) { } public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static void Store(float* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(float* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 source) { } public static void StoreFence() { } - public unsafe static void StoreHigh(float* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreLow(float* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreScalar(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreHigh(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreLow(float* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreScalar(float* address, System.Runtime.Intrinsics.Vector128 source) { } public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 SubtractScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -5930,34 +5981,34 @@ internal Sse2() { } public static ushort Extract(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, short data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, ushort data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ulong* address) { throw null; } public static void LoadFence() { } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(ulong* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) { throw null; } - public unsafe static void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, byte* address) { } - public unsafe static void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, sbyte* address) { } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) { throw null; } + public static unsafe void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, byte* address) { } + public static unsafe void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, sbyte* address) { } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -6047,42 +6098,42 @@ public static void MemoryFence() { } public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(short* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(int* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(long* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(short* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(int* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(long* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreHigh(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreLow(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreNonTemporal(int* address, int value) { } - public unsafe static void StoreNonTemporal(uint* address, uint value) { } - public unsafe static void StoreScalar(double* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreScalar(int* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreScalar(long* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreScalar(uint* address, System.Runtime.Intrinsics.Vector128 source) { } - public unsafe static void StoreScalar(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(short* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(int* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(long* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreHigh(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreLow(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreNonTemporal(int* address, int value) { } + public static unsafe void StoreNonTemporal(uint* address, uint value) { } + public static unsafe void StoreScalar(double* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreScalar(int* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreScalar(long* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreScalar(uint* address, System.Runtime.Intrinsics.Vector128 source) { } + public static unsafe void StoreScalar(ulong* address, System.Runtime.Intrinsics.Vector128 source) { } public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -6136,8 +6187,8 @@ internal X64() { } public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static long ConvertToInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static void StoreNonTemporal(long* address, long value) { } - public unsafe static void StoreNonTemporal(ulong* address, ulong value) { } + public static unsafe void StoreNonTemporal(long* address, long value) { } + public static unsafe void StoreNonTemporal(ulong* address, ulong value) { } } } [System.CLSCompliantAttribute(false)] @@ -6151,15 +6202,15 @@ internal Sse3() { } public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAndDuplicateToVector128(double* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadDquVector128(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndDuplicateToVector128(double* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(ulong* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 MoveAndDuplicate(System.Runtime.Intrinsics.Vector128 source) { throw null; } public static System.Runtime.Intrinsics.Vector128 MoveHighAndDuplicate(System.Runtime.Intrinsics.Vector128 source) { throw null; } public static System.Runtime.Intrinsics.Vector128 MoveLowAndDuplicate(System.Runtime.Intrinsics.Vector128 source) { throw null; } @@ -6196,30 +6247,30 @@ internal Sse41() { } public static System.Runtime.Intrinsics.Vector128 CeilingScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(byte* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(short* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(int* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(uint* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte control) { throw null; } public static byte Extract(System.Runtime.Intrinsics.Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } @@ -6237,14 +6288,14 @@ internal Sse41() { } public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, sbyte data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, uint data, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute] byte index) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(byte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(short* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(int* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(long* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(sbyte* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ushort* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(uint* address) { throw null; } - public unsafe static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ulong* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(byte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(short* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(int* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(long* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(sbyte* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ushort* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(uint* address) { throw null; } + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ulong* address) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) { throw null; } @@ -6433,16 +6484,16 @@ public abstract partial class PackedSimd public static Vector128 Splat(double value) { throw null; } public static Vector128 Splat(nint value) { throw null; } public static Vector128 Splat(nuint value) { throw null; } - public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { throw null; } // takes ImmLaneIdx16 - public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { throw null; } // takes ImmLaneIdx16 - public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { throw null; } // takes ImmLaneIdx8 - public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { throw null; } // takes ImmLaneIdx8 - public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; } // takes ImmLaneIdx4 - public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; } // takes ImmLaneIdx4 - public static long ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; } // takes ImmLaneIdx2 - public static ulong ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; } // takes ImmLaneIdx2 - public static float ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; } // takes ImmLaneIdx4 - public static double ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; } // takes ImmLaneIdx2 + public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { throw null; }// takes ImmLaneIdx16 + public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte index) { throw null; }// takes ImmLaneIdx16 + public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { throw null; }// takes ImmLaneIdx8 + public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(7))] byte index) { throw null; }// takes ImmLaneIdx8 + public static int ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; }// takes ImmLaneIdx4 + public static uint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; }// takes ImmLaneIdx4 + public static long ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; }// takes ImmLaneIdx2 + public static ulong ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; }// takes ImmLaneIdx2 + public static float ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; }// takes ImmLaneIdx4 + public static double ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(1))] byte index) { throw null; }// takes ImmLaneIdx2 public static nint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; } public static nuint ExtractScalar(Vector128 value, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(3))] byte index) { throw null; } public static Vector128 ReplaceScalar(Vector128 vector, [System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute(Max = (byte)(15))] byte imm, int value) { throw null; } // takes ImmLaneIdx16 diff --git a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs index 1078dc7339142..4221401fa1a72 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs @@ -748,6 +748,27 @@ ("LoadUnOpTest.template", new Dictionary { ["TestName"] = "LoadVector128_UInt16", ["Isa"] = "AdvSimd", ["Method"] = "LoadVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), ("LoadUnOpTest.template", new Dictionary { ["TestName"] = "LoadVector128_UInt32", ["Isa"] = "AdvSimd", ["Method"] = "LoadVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), ("LoadUnOpTest.template", new Dictionary { ["TestName"] = "LoadVector128_UInt64", ["Isa"] = "AdvSimd", ["Method"] = "LoadVector128", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2SByte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2Byte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2UShort", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2Short", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2UInt32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2Int32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector64x2Float", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x2", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3SByte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3Byte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3UShort", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3Short", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3UInt32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3Int32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector64x3Float", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x3", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4SByte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4Byte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4UShort", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4Short", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4UInt32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4Int32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector64x4Float", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector64x4", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "8", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), ("VecBinOpTest.template", new Dictionary { ["TestName"] = "Max_Vector64_Byte", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "Max", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector64", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "Helpers.Max(left[i], right[i]) != result[i]"}), ("VecBinOpTest.template", new Dictionary { ["TestName"] = "Max_Vector64_Int16", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "Max", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector64", ["Op2BaseType"] = "Int16", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "Helpers.Max(left[i], right[i]) != result[i]"}), ("VecBinOpTest.template", new Dictionary { ["TestName"] = "Max_Vector64_Int32", ["Isa"] = "AdvSimd", ["LoadIsa"] = "AdvSimd", ["Method"] = "Max", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector64", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "Helpers.Max(left[i], right[i]) != result[i]"}), @@ -2044,8 +2065,38 @@ ("LoadPairVectorTest.template", new Dictionary { ["TestName"] = "LoadPairVector128NonTemporal_Single", ["Isa"] = "AdvSimd.Arm64", ["Method"] = "LoadPairVector128NonTemporal", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "BitConverter.DoubleToInt64Bits(firstOp[i]) != BitConverter.DoubleToInt64Bits(result[i])"}), ("LoadPairVectorTest.template", new Dictionary { ["TestName"] = "LoadPairVector128NonTemporal_UInt16", ["Isa"] = "AdvSimd.Arm64", ["Method"] = "LoadPairVector128NonTemporal", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), ("LoadPairVectorTest.template", new Dictionary { ["TestName"] = "LoadPairVector128NonTemporal_UInt32", ["Isa"] = "AdvSimd.Arm64", ["Method"] = "LoadPairVector128NonTemporal", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), - ("LoadPairVectorTest.template", new Dictionary { ["TestName"] = "LoadPairVector128NonTemporal_UInt64", ["Isa"] = "AdvSimd.Arm64", ["Method"] = "LoadPairVector128NonTemporal", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), - ("VecBinOpTest.template", new Dictionary { ["TestName"] = "Max_Vector128_Double", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "Max", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "BitConverter.DoubleToInt64Bits(Helpers.Max(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), + ("LoadPairVectorTest.template", new Dictionary { ["TestName"] = "LoadPairVector128NonTemporal_UInt64", ["Isa"] = "AdvSimd.Arm64", ["Method"] = "LoadPairVector128NonTemporal", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "32", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "firstOp[i] != result[i]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2SByte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Byte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2UShort", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Short", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2UInt32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Int32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2UInt64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Int64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Float", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx2Test.template", new Dictionary { ["TestName"] = "LoadVector128x2Double", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x2", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "double", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result1[i] != input[i * 2] || result2[i] != input[(i * 2) + 1]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3SByte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Byte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3UShort", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Short", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3UInt32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Int32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3UInt64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Int64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Float", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx3Test.template", new Dictionary { ["TestName"] = "LoadVector128x3Double", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x3", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "double", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result1[i] != input[i * 3] || result2[i] != input[(i * 3) + 1] || result3[i] != input[(i * 3) + 2]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4SByte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSByte()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Byte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetByte()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4UShort", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Short", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt16()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4UInt32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Int32", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int32", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4UInt64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Int64", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Int64", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Float", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "float", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("LoadVectorx4Test.template", new Dictionary { ["TestName"] = "LoadVector128x4Double", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "LoadVector128x4", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "double", ["LargestVectorSize"] = "16", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result1[i] != input[i * 4] || result2[i] != input[(i * 4) + 1] || result3[i] != input[(i * 4) + 2] || result4[i] != input[(i * 4) + 3]"}), + ("VecBinOpTest.template", new Dictionary { ["TestName"] = "Max_Vector128_Double", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "Max", ["RetVectorType"] = "Vector128", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector128", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector128", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "16", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "BitConverter.DoubleToInt64Bits(Helpers.Max(left[i], right[i])) != BitConverter.DoubleToInt64Bits(result[i])"}), ("VecReduceUnOpTest.template", new Dictionary { ["TestName"] = "MaxAcross_Vector64_Byte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "MaxAcross", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Byte", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["ValidateReduceOpResult"] = "Helpers.MaxAcross(firstOp) != result[0]", ["ValidateRemainingResults"] = "result[i] != 0"}), ("VecReduceUnOpTest.template", new Dictionary { ["TestName"] = "MaxAcross_Vector64_Int16", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "MaxAcross", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "Int16", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["ValidateReduceOpResult"] = "Helpers.MaxAcross(firstOp) != result[0]", ["ValidateRemainingResults"] = "result[i] != 0"}), ("VecReduceUnOpTest.template", new Dictionary { ["TestName"] = "MaxAcross_Vector64_SByte", ["Isa"] = "AdvSimd.Arm64", ["LoadIsa"] = "AdvSimd", ["Method"] = "MaxAcross", ["RetVectorType"] = "Vector64", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector64", ["Op1BaseType"] = "SByte", ["LargestVectorSize"] = "8", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["ValidateReduceOpResult"] = "Helpers.MaxAcross(firstOp) != result[0]", ["ValidateRemainingResults"] = "result[i] != 0"}), diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx2Test.template b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx2Test.template new file mode 100644 index 0000000000000..c49461ac48a8b --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx2Test.template @@ -0,0 +1,280 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +/****************************************************************************** + * This file is auto-generated from a template file by the GenerateTests.csx * + * script in src\tests\JIT\HardwareIntrinsics\Arm\Shared. In order to make * + * changes, please update the corresponding template and run according to the * + * directions listed in the file. * + ******************************************************************************/ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +namespace JIT.HardwareIntrinsics.Arm +{ + public static partial class Program + { + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/92855#issuecomment-1746078670", TestRuntimes.Mono)] + public static void {TestName}() + { + var test = new LoadVector{Op1VectorType}x2Test__{Op1BaseType}(); + if (test.IsSupported) + { + // Validates basic functionality works + test.RunBasicScenario(); + + // Validates calling via reflection works + test.RunReflectionScenario(); + + // Validates passing an instance member of a class works + test.RunClassFldScenario(); + + // Validates passing the field of a local struct works + test.RunStructLclFldScenario(); + + // Validates passing an instance member of a struct works + test.RunStructFldScenario(); + } + else + { + // Validates we throw on unsupported hardware + test.RunUnsupportedScenario(); + } + + if (!test.Succeeded) + { + throw new Exception("One or more scenarios did not complete as expected."); + } + } + } + + public sealed unsafe class LoadVector{Op1VectorType}x2Test__{Op1BaseType} + { + private struct DataTable + { + private byte[] inArray; + private byte[] outArray1; + private byte[] outArray2; + + private GCHandle inHandle; + private GCHandle outHandle1; + private GCHandle outHandle2; + + private ulong alignment; + + public DataTable({Op1BaseType}[] outArray1, {Op1BaseType}[] outArray2, {Op1BaseType}[] inArray, int alignment) + { + int sizeOfInArray = inArray.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray1 = outArray1.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray2 = outArray2.Length * Unsafe.SizeOf<{Op1BaseType}>(); + if ((alignment != 16 && alignment != 8) || (alignment * 2) < sizeOfInArray || (alignment * 2) < sizeOfOutArray1 || (alignment * 2) < sizeOfOutArray2) + { + throw new ArgumentException("Invalid value of alignment"); + } + + this.inArray = new byte[alignment * 2]; + this.outArray1 = new byte[alignment * 2]; + this.outArray2 = new byte[alignment * 2]; + + this.inHandle = GCHandle.Alloc(this.inArray, GCHandleType.Pinned); + this.outHandle1 = GCHandle.Alloc(this.outArray1, GCHandleType.Pinned); + this.outHandle2 = GCHandle.Alloc(this.outArray2, GCHandleType.Pinned); + + this.alignment = (ulong)alignment; + + Unsafe.CopyBlockUnaligned(ref Unsafe.AsRef(inArrayPtr), ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), (uint)sizeOfInArray); + } + + public void* inArrayPtr => Align((byte*)(inHandle.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray1Ptr => Align((byte*)(outHandle1.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray2Ptr => Align((byte*)(outHandle2.AddrOfPinnedObject().ToPointer()), alignment); + + + public void Dispose() + { + inHandle.Free(); + outHandle1.Free(); + outHandle2.Free(); + } + + private static unsafe void* Align(byte* buffer, ulong expectedAlignment) + { + return (void*)(((ulong)buffer + expectedAlignment - 1) & ~(expectedAlignment - 1)); + } + } + + private struct TestStruct + { + public {Op1VectorType}<{Op1BaseType}> _fld1; + public {Op1VectorType}<{Op1BaseType}> _fld2; + + public static TestStruct Create() + { + return new TestStruct(); + } + + public void RunStructFldScenario(LoadVector{Op1VectorType}x2Test__{Op1BaseType} testClass) + { + (_fld1, _fld2) = {Isa}.{Method}(({Op1BaseType}*)testClass._dataTable.inArrayPtr); + + testClass.ValidateResult(_fld1, _fld2, testClass._dataTable.inArrayPtr); + } + } + + private static readonly int LargestVectorSize = {LargestVectorSize}; + + private static readonly int OpElementCount = Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() / sizeof({Op1BaseType}); + private static readonly int DestElementCount = OpElementCount * 2; + + private static {Op1BaseType}[] _data = new {Op1BaseType}[DestElementCount]; + + private {Op1VectorType}<{Op1BaseType}> _fld1; + private {Op1VectorType}<{Op1BaseType}> _fld2; + + private DataTable _dataTable; + + public LoadVector{Op1VectorType}x2Test__{Op1BaseType}() + { + Succeeded = true; + for (var i = 0; i < OpElementCount; i++) { _data[i] = {NextValueOp2}; } + _dataTable = new DataTable(new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], _data, LargestVectorSize); + } + + public bool IsSupported => {Isa}.IsSupported; + + public bool Succeeded { get; set; } + + public void RunBasicScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario)); + + var result = {Isa}.{Method}(({Op1BaseType}*)(_dataTable.inArrayPtr)); + + Unsafe.Write(_dataTable.outArray1Ptr, result.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, result.Item2); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.inArrayPtr); + } + + public void RunReflectionScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunReflectionScenario)); + + var result = typeof({Isa}).GetMethod(nameof({Isa}.{Method}), new Type[] { typeof({Op1BaseType}*) }) + .Invoke(null, new object[] { + Pointer.Box(_dataTable.inArrayPtr, typeof({Op1BaseType}*)) + }); + + var output = (({Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>))result; + Unsafe.Write(_dataTable.outArray1Ptr, output.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, output.Item2); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.inArrayPtr); + } + + public void RunClassFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario)); + + (_fld1, _fld2) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + ValidateResult(_fld1, _fld2, _dataTable.inArrayPtr); + } + + public void RunStructLclFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructLclFldScenario)); + + var test = TestStruct.Create(); + (test._fld1, test._fld2) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + Unsafe.Write(_dataTable.outArray1Ptr, test._fld1); + Unsafe.Write(_dataTable.outArray2Ptr, test._fld2); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.inArrayPtr); + } + + public void RunStructFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructFldScenario)); + + var test = TestStruct.Create(); + test.RunStructFldScenario(this); + } + + public void RunUnsupportedScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunUnsupportedScenario)); + + bool succeeded = false; + + try + { + RunClassFldScenario(); + } + catch (PlatformNotSupportedException) + { + succeeded = true; + } + + if (!succeeded) + { + Succeeded = false; + } + } + + private void ValidateResult(void* result1, void* result2, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 2); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), ref Unsafe.AsRef(result1), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), ref Unsafe.AsRef(result2), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + + ValidateResult(inArray, outArray1, outArray2, method); + } + + private void ValidateResult({Op1VectorType}<{Op1BaseType}> result1, {Op1VectorType}<{Op1BaseType}> result2, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 2); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), result1); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), result2); + + ValidateResult(inArray, outArray1, outArray2, method); + } + + private void ValidateResult({Op1BaseType}[] input, {Op1BaseType}[] result1, {Op1BaseType}[] result2, [CallerMemberName] string method = "") + { + bool succeeded = true; + + for (int i = 0; i < OpElementCount; i++) + { + if ({ValidateIterResult}) + { + succeeded = false; + break; + } + } + + if (!succeeded) + { + TestLibrary.TestFramework.LogInformation($"{nameof({Isa})}.{nameof({Isa}.{Method})}({Op1VectorType}<{Op1BaseType}>): {Method} failed:"); + TestLibrary.TestFramework.LogInformation($" input: ({string.Join(", ", input)})"); + TestLibrary.TestFramework.LogInformation($" result1: ({string.Join(", ", result1)})"); + TestLibrary.TestFramework.LogInformation($" result2: ({string.Join(", ", result2)})"); + TestLibrary.TestFramework.LogInformation(string.Empty); + + Succeeded = false; + } + } + } +} \ No newline at end of file diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx3Test.template b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx3Test.template new file mode 100644 index 0000000000000..a81ebb120ac99 --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx3Test.template @@ -0,0 +1,297 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +/****************************************************************************** + * This file is auto-generated from a template file by the GenerateTests.csx * + * script in src\tests\JIT\HardwareIntrinsics\Arm\Shared. In order to make * + * changes, please update the corresponding template and run according to the * + * directions listed in the file. * + ******************************************************************************/ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +namespace JIT.HardwareIntrinsics.Arm +{ + public static partial class Program + { + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/92855#issuecomment-1746078670", TestRuntimes.Mono)] + public static void {TestName}() + { + var test = new {TestName}Test(); + if (test.IsSupported) + { + // Validates basic functionality works + test.RunBasicScenario(); + + // Validates calling via reflection works + test.RunReflectionScenario(); + + // Validates passing an instance member of a class works + test.RunClassFldScenario(); + + // Validates passing the field of a local struct works + test.RunStructLclFldScenario(); + + // Validates passing an instance member of a struct works + test.RunStructFldScenario(); + } + else + { + // Validates we throw on unsupported hardware + test.RunUnsupportedScenario(); + } + + if (!test.Succeeded) + { + throw new Exception("One or more scenarios did not complete as expected."); + } + } + } + + public sealed unsafe class {TestName}Test + { + private struct DataTable + { + private byte[] inArray; + private byte[] outArray1; + private byte[] outArray2; + private byte[] outArray3; + + private GCHandle inHandle; + private GCHandle outHandle1; + private GCHandle outHandle2; + private GCHandle outHandle3; + + private ulong alignment; + + public DataTable({Op1BaseType}[] outArray1, {Op1BaseType}[] outArray2, {Op1BaseType}[] outArray3, {Op1BaseType}[] inArray, int alignment) + { + int sizeOfInArray = inArray.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray1 = outArray1.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray2 = outArray2.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray3 = outArray3.Length * Unsafe.SizeOf<{Op1BaseType}>(); + if ((alignment != 16 && alignment != 8) || (alignment * 3) < sizeOfInArray || (alignment * 2) < sizeOfOutArray1 || (alignment * 2) < sizeOfOutArray2 || (alignment * 2) < sizeOfOutArray3) + { + throw new ArgumentException("Invalid value of alignment"); + } + + this.inArray = new byte[alignment * 3]; + this.outArray1 = new byte[alignment * 2]; + this.outArray2 = new byte[alignment * 2]; + this.outArray3 = new byte[alignment * 2]; + + this.inHandle = GCHandle.Alloc(this.inArray, GCHandleType.Pinned); + this.outHandle1 = GCHandle.Alloc(this.outArray1, GCHandleType.Pinned); + this.outHandle2 = GCHandle.Alloc(this.outArray2, GCHandleType.Pinned); + this.outHandle3 = GCHandle.Alloc(this.outArray3, GCHandleType.Pinned); + + this.alignment = (ulong)alignment; + + Unsafe.CopyBlockUnaligned(ref Unsafe.AsRef(inArrayPtr), ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), (uint)sizeOfInArray); + } + + public void* inArrayPtr => Align((byte*)(inHandle.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray1Ptr => Align((byte*)(outHandle1.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray2Ptr => Align((byte*)(outHandle2.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray3Ptr => Align((byte*)(outHandle3.AddrOfPinnedObject().ToPointer()), alignment); + + + public void Dispose() + { + inHandle.Free(); + outHandle1.Free(); + outHandle2.Free(); + outHandle3.Free(); + } + + private static unsafe void* Align(byte* buffer, ulong expectedAlignment) + { + return (void*)(((ulong)buffer + expectedAlignment - 1) & ~(expectedAlignment - 1)); + } + } + + private struct TestStruct + { + public {Op1VectorType}<{Op1BaseType}> _fld1; + public {Op1VectorType}<{Op1BaseType}> _fld2; + public {Op1VectorType}<{Op1BaseType}> _fld3; + + public static TestStruct Create() + { + return new TestStruct(); + } + + public void RunStructFldScenario({TestName}Test testClass) + { + (_fld1, _fld2, _fld3) = {Isa}.{Method}(({Op1BaseType}*)testClass._dataTable.inArrayPtr); + + testClass.ValidateResult(_fld1, _fld2, _fld3, testClass._dataTable.inArrayPtr); + } + } + + private static readonly int LargestVectorSize = {LargestVectorSize}; + + private static readonly int OpElementCount = Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() / sizeof({Op1BaseType}); + private static readonly int DestElementCount = OpElementCount * 3; + + private static {Op1BaseType}[] _data = new {Op1BaseType}[DestElementCount]; + + private {Op1VectorType}<{Op1BaseType}> _fld1; + private {Op1VectorType}<{Op1BaseType}> _fld2; + private {Op1VectorType}<{Op1BaseType}> _fld3; + + private DataTable _dataTable; + + public {TestName}Test() + { + Succeeded = true; + for (var i = 0; i < OpElementCount; i++) { _data[i] = {NextValueOp2}; } + _dataTable = new DataTable(new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], _data, LargestVectorSize); + } + + public bool IsSupported => {Isa}.IsSupported; + + public bool Succeeded { get; set; } + + public void RunBasicScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario)); + + var result = {Isa}.{Method}(({Op1BaseType}*)(_dataTable.inArrayPtr)); + + Unsafe.Write(_dataTable.outArray1Ptr, result.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, result.Item2); + Unsafe.Write(_dataTable.outArray3Ptr, result.Item3); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.inArrayPtr); + } + + public void RunReflectionScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunReflectionScenario)); + + var result = typeof({Isa}).GetMethod(nameof({Isa}.{Method}), new Type[] { typeof({Op1BaseType}*) }) + .Invoke(null, new object[] { + Pointer.Box(_dataTable.inArrayPtr, typeof({Op1BaseType}*)) + }); + + var output = (({Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>))result; + Unsafe.Write(_dataTable.outArray1Ptr, output.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, output.Item2); + Unsafe.Write(_dataTable.outArray3Ptr, output.Item3); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.inArrayPtr); + } + + public void RunClassFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario)); + + (_fld1, _fld2, _fld3) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + ValidateResult(_fld1, _fld2, _fld3, _dataTable.inArrayPtr); + } + + public void RunStructLclFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructLclFldScenario)); + + var test = TestStruct.Create(); + (test._fld1, test._fld2, test._fld3) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + Unsafe.Write(_dataTable.outArray1Ptr, test._fld1); + Unsafe.Write(_dataTable.outArray2Ptr, test._fld2); + Unsafe.Write(_dataTable.outArray3Ptr, test._fld3); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.inArrayPtr); + } + + public void RunStructFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructFldScenario)); + + var test = TestStruct.Create(); + test.RunStructFldScenario(this); + } + + public void RunUnsupportedScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunUnsupportedScenario)); + + bool succeeded = false; + + try + { + RunClassFldScenario(); + } + catch (PlatformNotSupportedException) + { + succeeded = true; + } + + if (!succeeded) + { + Succeeded = false; + } + } + + private void ValidateResult(void* result1, void* result2, void* result3, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray3 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 3); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), ref Unsafe.AsRef(result1), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), ref Unsafe.AsRef(result2), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray3[0]), ref Unsafe.AsRef(result3), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + + ValidateResult(inArray, outArray1, outArray2, outArray3, method); + } + + private void ValidateResult({Op1VectorType}<{Op1BaseType}> result1, {Op1VectorType}<{Op1BaseType}> result2, {Op1VectorType}<{Op1BaseType}> result3, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray3 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 3); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), result1); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), result2); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray3[0]), result3); + + ValidateResult(inArray, outArray1, outArray2, outArray3, method); + } + + private void ValidateResult({Op1BaseType}[] input, {Op1BaseType}[] result1, {Op1BaseType}[] result2, {Op1BaseType}[] result3, [CallerMemberName] string method = "") + { + bool succeeded = true; + + for (int i = 0; i < OpElementCount; i++) + { + if ({ValidateIterResult}) + { + succeeded = false; + break; + } + } + + if (!succeeded) + { + TestLibrary.TestFramework.LogInformation($"{nameof({Isa})}.{nameof({Isa}.{Method})}({Op1VectorType}<{Op1BaseType}>): {Method} failed:"); + TestLibrary.TestFramework.LogInformation($" input: ({string.Join(", ", input)})"); + TestLibrary.TestFramework.LogInformation($" result1: ({string.Join(", ", result1)})"); + TestLibrary.TestFramework.LogInformation($" result2: ({string.Join(", ", result2)})"); + TestLibrary.TestFramework.LogInformation($" result3: ({string.Join(", ", result3)})"); + TestLibrary.TestFramework.LogInformation(string.Empty); + + Succeeded = false; + } + } + } +} \ No newline at end of file diff --git a/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx4Test.template b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx4Test.template new file mode 100644 index 0000000000000..a8ac65a2a9efb --- /dev/null +++ b/src/tests/JIT/HardwareIntrinsics/Arm/Shared/LoadVectorx4Test.template @@ -0,0 +1,314 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +/****************************************************************************** + * This file is auto-generated from a template file by the GenerateTests.csx * + * script in src\tests\JIT\HardwareIntrinsics\Arm\Shared. In order to make * + * changes, please update the corresponding template and run according to the * + * directions listed in the file. * + ******************************************************************************/ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.Arm; +using Xunit; + +namespace JIT.HardwareIntrinsics.Arm +{ + public static partial class Program + { + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/92855#issuecomment-1746078670", TestRuntimes.Mono)] + public static void {TestName}() + { + var test = new LoadVector{Op1VectorType}x4Test__{Op1BaseType}(); + if (test.IsSupported) + { + // Validates basic functionality works + test.RunBasicScenario(); + + // Validates calling via reflection works + test.RunReflectionScenario(); + + // Validates passing an instance member of a class works + test.RunClassFldScenario(); + + // Validates passing the field of a local struct works + test.RunStructLclFldScenario(); + + // Validates passing an instance member of a struct works + test.RunStructFldScenario(); + } + else + { + // Validates we throw on unsupported hardware + test.RunUnsupportedScenario(); + } + + if (!test.Succeeded) + { + throw new Exception("One or more scenarios did not complete as expected."); + } + } + } + + public sealed unsafe class LoadVector{Op1VectorType}x4Test__{Op1BaseType} + { + private struct DataTable + { + private byte[] inArray; + private byte[] outArray1; + private byte[] outArray2; + private byte[] outArray3; + private byte[] outArray4; + + private GCHandle inHandle; + private GCHandle outHandle1; + private GCHandle outHandle2; + private GCHandle outHandle3; + private GCHandle outHandle4; + + private ulong alignment; + + public DataTable({Op1BaseType}[] outArray1, {Op1BaseType}[] outArray2, {Op1BaseType}[] outArray3, {Op1BaseType}[] outArray4, {Op1BaseType}[] inArray, int alignment) + { + int sizeOfInArray = inArray.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray1 = outArray1.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray2 = outArray2.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray3 = outArray3.Length * Unsafe.SizeOf<{Op1BaseType}>(); + int sizeOfOutArray4 = outArray4.Length * Unsafe.SizeOf<{Op1BaseType}>(); + if ((alignment != 16 && alignment != 8) || (alignment * 4) < sizeOfInArray || (alignment * 2) < sizeOfOutArray1 || (alignment * 2) < sizeOfOutArray2 || (alignment * 2) < sizeOfOutArray3 || (alignment * 2) < sizeOfOutArray4) + { + throw new ArgumentException("Invalid value of alignment"); + } + + this.inArray = new byte[alignment * 4]; + this.outArray1 = new byte[alignment * 2]; + this.outArray2 = new byte[alignment * 2]; + this.outArray3 = new byte[alignment * 2]; + this.outArray4 = new byte[alignment * 2]; + + this.inHandle = GCHandle.Alloc(this.inArray, GCHandleType.Pinned); + this.outHandle1 = GCHandle.Alloc(this.outArray1, GCHandleType.Pinned); + this.outHandle2 = GCHandle.Alloc(this.outArray2, GCHandleType.Pinned); + this.outHandle3 = GCHandle.Alloc(this.outArray3, GCHandleType.Pinned); + this.outHandle4 = GCHandle.Alloc(this.outArray4, GCHandleType.Pinned); + + this.alignment = (ulong)alignment; + + Unsafe.CopyBlockUnaligned(ref Unsafe.AsRef(inArrayPtr), ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), (uint)sizeOfInArray); + } + + public void* inArrayPtr => Align((byte*)(inHandle.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray1Ptr => Align((byte*)(outHandle1.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray2Ptr => Align((byte*)(outHandle2.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray3Ptr => Align((byte*)(outHandle3.AddrOfPinnedObject().ToPointer()), alignment); + public void* outArray4Ptr => Align((byte*)(outHandle4.AddrOfPinnedObject().ToPointer()), alignment); + + + public void Dispose() + { + inHandle.Free(); + outHandle1.Free(); + outHandle2.Free(); + outHandle3.Free(); + outHandle4.Free(); + } + + private static unsafe void* Align(byte* buffer, ulong expectedAlignment) + { + return (void*)(((ulong)buffer + expectedAlignment - 1) & ~(expectedAlignment - 1)); + } + } + + private struct TestStruct + { + public {Op1VectorType}<{Op1BaseType}> _fld1; + public {Op1VectorType}<{Op1BaseType}> _fld2; + public {Op1VectorType}<{Op1BaseType}> _fld3; + public {Op1VectorType}<{Op1BaseType}> _fld4; + + public static TestStruct Create() + { + return new TestStruct(); + } + + public void RunStructFldScenario(LoadVector{Op1VectorType}x4Test__{Op1BaseType} testClass) + { + (_fld1, _fld2, _fld3, _fld4) = {Isa}.{Method}(({Op1BaseType}*)testClass._dataTable.inArrayPtr); + + testClass.ValidateResult(_fld1, _fld2, _fld3, _fld4, testClass._dataTable.inArrayPtr); + } + } + + private static readonly int LargestVectorSize = {LargestVectorSize}; + + private static readonly int OpElementCount = Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() / sizeof({Op1BaseType}); + private static readonly int DestElementCount = OpElementCount * 4; + + private static {Op1BaseType}[] _data = new {Op1BaseType}[DestElementCount]; + + private {Op1VectorType}<{Op1BaseType}> _fld1; + private {Op1VectorType}<{Op1BaseType}> _fld2; + private {Op1VectorType}<{Op1BaseType}> _fld3; + private {Op1VectorType}<{Op1BaseType}> _fld4; + + private DataTable _dataTable; + + public LoadVector{Op1VectorType}x4Test__{Op1BaseType}() + { + Succeeded = true; + for (var i = 0; i < OpElementCount; i++) { _data[i] = {NextValueOp2}; } + _dataTable = new DataTable(new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], new {Op1BaseType}[OpElementCount], _data, LargestVectorSize); + } + + public bool IsSupported => {Isa}.IsSupported; + + public bool Succeeded { get; set; } + + public void RunBasicScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario)); + + var result = {Isa}.{Method}(({Op1BaseType}*)(_dataTable.inArrayPtr)); + + Unsafe.Write(_dataTable.outArray1Ptr, result.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, result.Item2); + Unsafe.Write(_dataTable.outArray3Ptr, result.Item3); + Unsafe.Write(_dataTable.outArray4Ptr, result.Item4); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.outArray4Ptr, _dataTable.inArrayPtr); + } + + public void RunReflectionScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunReflectionScenario)); + + var result = typeof({Isa}).GetMethod(nameof({Isa}.{Method}), new Type[] { typeof({Op1BaseType}*) }) + .Invoke(null, new object[] { + Pointer.Box(_dataTable.inArrayPtr, typeof({Op1BaseType}*)) + }); + + var output = (({Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>,{Op1VectorType}<{Op1BaseType}>))result; + Unsafe.Write(_dataTable.outArray1Ptr, output.Item1); + Unsafe.Write(_dataTable.outArray2Ptr, output.Item2); + Unsafe.Write(_dataTable.outArray3Ptr, output.Item3); + Unsafe.Write(_dataTable.outArray4Ptr, output.Item4); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.outArray4Ptr, _dataTable.inArrayPtr); + } + + public void RunClassFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario)); + + (_fld1, _fld2, _fld3, _fld4) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + ValidateResult(_fld1, _fld2, _fld3, _fld4, _dataTable.inArrayPtr); + } + + public void RunStructLclFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructLclFldScenario)); + + var test = TestStruct.Create(); + (test._fld1, test._fld2, test._fld3, test._fld4) = {Isa}.{Method}(({Op1BaseType}*)_dataTable.inArrayPtr); + + Unsafe.Write(_dataTable.outArray1Ptr, test._fld1); + Unsafe.Write(_dataTable.outArray2Ptr, test._fld2); + Unsafe.Write(_dataTable.outArray3Ptr, test._fld3); + Unsafe.Write(_dataTable.outArray4Ptr, test._fld4); + ValidateResult(_dataTable.outArray1Ptr, _dataTable.outArray2Ptr, _dataTable.outArray3Ptr, _dataTable.outArray4Ptr, _dataTable.inArrayPtr); + } + + public void RunStructFldScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunStructFldScenario)); + + var test = TestStruct.Create(); + test.RunStructFldScenario(this); + } + + public void RunUnsupportedScenario() + { + TestLibrary.TestFramework.BeginScenario(nameof(RunUnsupportedScenario)); + + bool succeeded = false; + + try + { + RunClassFldScenario(); + } + catch (PlatformNotSupportedException) + { + succeeded = true; + } + + if (!succeeded) + { + Succeeded = false; + } + } + + private void ValidateResult(void* result1, void* result2, void* result3, void* result4, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray3 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray4 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 4); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), ref Unsafe.AsRef(result1), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), ref Unsafe.AsRef(result2), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray3[0]), ref Unsafe.AsRef(result3), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray4[0]), ref Unsafe.AsRef(result4), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>()); + + ValidateResult(inArray, outArray1, outArray2, outArray3, outArray4, method); + } + + private void ValidateResult({Op1VectorType}<{Op1BaseType}> result1, {Op1VectorType}<{Op1BaseType}> result2, {Op1VectorType}<{Op1BaseType}> result3, {Op1VectorType}<{Op1BaseType}> result4, void* input, [CallerMemberName] string method = "") + { + {Op1BaseType}[] inArray = new {Op1BaseType}[DestElementCount]; + {Op1BaseType}[] outArray1 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray2 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray3 = new {Op1BaseType}[OpElementCount]; + {Op1BaseType}[] outArray4 = new {Op1BaseType}[OpElementCount]; + + Unsafe.CopyBlockUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref inArray[0]), ref Unsafe.AsRef(input), (uint)Unsafe.SizeOf<{Op1VectorType}<{Op1BaseType}>>() * 4); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray1[0]), result1); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray2[0]), result2); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray3[0]), result3); + Unsafe.WriteUnaligned(ref Unsafe.As<{Op1BaseType}, byte>(ref outArray4[0]), result4); + + ValidateResult(inArray, outArray1, outArray2, outArray3, outArray4, method); + } + + private void ValidateResult({Op1BaseType}[] input, {Op1BaseType}[] result1, {Op1BaseType}[] result2, {Op1BaseType}[] result3, {Op1BaseType}[] result4, [CallerMemberName] string method = "") + { + bool succeeded = true; + + for (int i = 0; i < OpElementCount; i++) + { + if ({ValidateIterResult}) + { + succeeded = false; + break; + } + } + + if (!succeeded) + { + TestLibrary.TestFramework.LogInformation($"{nameof({Isa})}.{nameof({Isa}.{Method})}({Op1VectorType}<{Op1BaseType}>): {Method} failed:"); + TestLibrary.TestFramework.LogInformation($" input: ({string.Join(", ", input)})"); + TestLibrary.TestFramework.LogInformation($" result1: ({string.Join(", ", result1)})"); + TestLibrary.TestFramework.LogInformation($" result2: ({string.Join(", ", result2)})"); + TestLibrary.TestFramework.LogInformation($" result3: ({string.Join(", ", result3)})"); + TestLibrary.TestFramework.LogInformation($" result4: ({string.Join(", ", result4)})"); + TestLibrary.TestFramework.LogInformation(string.Empty); + + Succeeded = false; + } + } + } +} \ No newline at end of file