Пример #1
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__TransposeOdd_Vector128_UInt16();

            fixed(Vector128 <UInt16> *pFld1 = &test._fld1)
            fixed(Vector128 <UInt16> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.Arm64.TransposeOdd(
                    AdvSimd.LoadVector128((UInt16 *)(pFld1)),
                    AdvSimd.LoadVector128((UInt16 *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #2
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new StoreBinaryOpTest__StorePair_Vector128_Int64();

            fixed(Vector128 <Int64> *pFld1 = &test._fld1)
            fixed(Vector128 <Int64> *pFld2 = &test._fld2)
            {
                AdvSimd.Arm64.StorePair(
                    (Int64 *)_dataTable.outArrayPtr,
                    AdvSimd.LoadVector128((Int64 *)(pFld1)),
                    AdvSimd.LoadVector128((Int64 *)(pFld2))
                    );

                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__FusedAddRoundedHalving_Vector128_Byte();

            fixed(Vector128 <Byte> *pFld1 = &test._fld1)
            fixed(Vector128 <Byte> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.FusedAddRoundedHalving(
                    AdvSimd.LoadVector128((Byte *)(pFld1)),
                    AdvSimd.LoadVector128((Byte *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));
            var test = new ImmBinaryOpTest__MultiplyBySelectedScalar_Vector64_UInt32_Vector128_UInt32_3();

            fixed(Vector64 <UInt32> *pFld1 = &test._fld1)
            fixed(Vector128 <UInt32> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.MultiplyBySelectedScalar(
                    AdvSimd.LoadVector64((UInt32 *)(pFld1)),
                    AdvSimd.LoadVector128((UInt32 *)(pFld2)),
                    3
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #5
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));
            var test = new ImmBinaryOpTest__ShiftLeftAndInsert_Vector64_Int32();

            fixed(Vector64 <Int32> *pFld1 = &test._fld1)
            fixed(Vector64 <Int32> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ShiftLeftAndInsert(
                    AdvSimd.LoadVector64((Int32 *)(pFld1)),
                    AdvSimd.LoadVector64((Int32 *)(pFld2)),
                    16
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #6
0
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed(Vector64 <Int32> *pFld1 = &_fld1)
            fixed(Vector64 <Int32> *pFld2 = &_fld2)
            fixed(Vector64 <Int32> *pFld3 = &_fld3)
            {
                var result = Rdm.Arm64.MultiplyRoundedDoublingAndAddSaturateHighScalar(
                    AdvSimd.LoadVector64((Int32 *)(pFld1)),
                    AdvSimd.LoadVector64((Int32 *)(pFld2)),
                    AdvSimd.LoadVector64((Int32 *)(pFld3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld2, _fld3, _dataTable.outArrayPtr);
            }
        }
Пример #7
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__ShiftArithmetic_Vector128_Int64();

            fixed(Vector128 <Int64> *pFld1 = &test._fld1)
            fixed(Vector128 <Int64> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ShiftArithmetic(
                    AdvSimd.LoadVector128((Int64 *)(pFld1)),
                    AdvSimd.LoadVector128((Int64 *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed(Vector64 <UInt32> *pClsVar1 = &_clsVar1)
            fixed(Vector128 <UInt64> *pClsVar2 = &_clsVar2)
            fixed(Vector128 <UInt64> *pClsVar3 = &_clsVar3)
            {
                var result = AdvSimd.AddRoundedHighNarrowUpper(
                    AdvSimd.LoadVector64((UInt32 *)(pClsVar1)),
                    AdvSimd.LoadVector128((UInt64 *)(pClsVar2)),
                    AdvSimd.LoadVector128((UInt64 *)(pClsVar3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar2, _clsVar3, _dataTable.outArrayPtr);
            }
        }
Пример #9
0
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed(Vector128 <UInt16> *pClsVar1 = &_clsVar1)
            fixed(Vector128 <UInt16> *pClsVar2 = &_clsVar2)
            fixed(Vector64 <UInt16> *pClsVar3  = &_clsVar3)
            {
                var result = AdvSimd.MultiplySubtractByScalar(
                    AdvSimd.LoadVector128((UInt16 *)(pClsVar1)),
                    AdvSimd.LoadVector128((UInt16 *)(pClsVar2)),
                    AdvSimd.LoadVector64((UInt16 *)(pClsVar3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar2, _clsVar3, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__AddSaturateScalar_Vector64_Int16_Vector64_Int16();

            fixed(Vector64 <Int16> *pFld1 = &test._fld1)
            fixed(Vector64 <Int16> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.Arm64.AddSaturateScalar(
                    AdvSimd.LoadVector64((Int16 *)(pFld1)),
                    AdvSimd.LoadVector64((Int16 *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #11
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));
            var test = new ImmBinaryOpTest__ShiftRightLogicalRoundedAdd_Vector128_Byte_1();

            fixed(Vector128 <Byte> *pFld1 = &test._fld1)
            fixed(Vector128 <Byte> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ShiftRightLogicalRoundedAdd(
                    AdvSimd.LoadVector128((Byte *)(pFld1)),
                    AdvSimd.LoadVector128((Byte *)(pFld2)),
                    1
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #12
0
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed (Vector64<Int32>* pClsVar1 = &_clsVar1)
            fixed (Vector64<Int32>* pClsVar2 = &_clsVar2)
            fixed (Vector64<Int32>* pClsVar3 = &_clsVar3)
            {
                var result = AdvSimd.BitwiseSelect(
                    AdvSimd.LoadVector64((Int32*)(pClsVar1)),
                    AdvSimd.LoadVector64((Int32*)(pClsVar2)),
                    AdvSimd.LoadVector64((Int32*)(pClsVar3))
                );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar2, _clsVar3, _dataTable.outArrayPtr);
            }
        }
Пример #13
0
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed(Vector128 <Byte> *pFld1 = &_fld1)
            fixed(Vector128 <Byte> *pFld2 = &_fld2)
            fixed(Vector128 <Byte> *pFld3 = &_fld3)
            {
                var result = AdvSimd.MultiplySubtract(
                    AdvSimd.LoadVector128((Byte *)(pFld1)),
                    AdvSimd.LoadVector128((Byte *)(pFld2)),
                    AdvSimd.LoadVector128((Byte *)(pFld3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld2, _fld3, _dataTable.outArrayPtr);
            }
        }
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed (Vector64<Single>* pFld1 = &_fld1)
            fixed (Vector64<Single>* pFld2 = &_fld2)
            fixed (Vector64<Single>* pFld3 = &_fld3)
            {
                var result = AdvSimd.BitwiseSelect(
                    AdvSimd.LoadVector64((Single*)(pFld1)),
                    AdvSimd.LoadVector64((Single*)(pFld2)),
                    AdvSimd.LoadVector64((Single*)(pFld3))
                );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld2, _fld3, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));
            var test = new ImmBinaryOpTest__MultiplyRoundedDoublingBySelectedScalarSaturateHigh_Vector64_Int32_Vector64_Int32_1();

            fixed(Vector64 <Int32> *pFld1 = &test._fld1)
            fixed(Vector64 <Int32> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.MultiplyRoundedDoublingBySelectedScalarSaturateHigh(
                    AdvSimd.LoadVector64((Int32 *)(pFld1)),
                    AdvSimd.LoadVector64((Int32 *)(pFld2)),
                    1
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #16
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__SubtractReturningHighNarrowLower_Vector64_Int32();

            fixed(Vector128 <Int64> *pFld1 = &test._fld1)
            fixed(Vector128 <Int64> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.SubtractReturningHighNarrowLower(
                    AdvSimd.LoadVector128((Int64 *)(pFld1)),
                    AdvSimd.LoadVector128((Int64 *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__ZipLow_Vector64_Single();

            fixed(Vector64 <Single> *pFld1 = &test._fld1)
            fixed(Vector64 <Single> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.Arm64.ZipLow(
                    AdvSimd.LoadVector64((Single *)(pFld1)),
                    AdvSimd.LoadVector64((Single *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #18
0
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed(Vector128 <Byte> *pClsVar1 = &_clsVar1)
            fixed(Vector128 <Byte> *pClsVar3 = &_clsVar3)
            {
                var result = AdvSimd.Arm64.InsertSelectedScalar(
                    AdvSimd.LoadVector128((Byte *)(pClsVar1)),
                    15,
                    AdvSimd.LoadVector128((Byte *)(pClsVar3)),
                    15
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar3, _dataTable.outArrayPtr);
            }
        }
Пример #19
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__ShiftLogicalRoundedSaturate_Vector64_SByte();

            fixed(Vector64 <SByte> *pFld1 = &test._fld1)
            fixed(Vector64 <SByte> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ShiftLogicalRoundedSaturate(
                    AdvSimd.LoadVector64((SByte *)(pFld1)),
                    AdvSimd.LoadVector64((SByte *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #20
0
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed(Vector128 <Byte> *pFld1 = &_fld1)
            fixed(Vector128 <Byte> *pFld2 = &_fld3)
            {
                var result = AdvSimd.Arm64.InsertSelectedScalar(
                    AdvSimd.LoadVector128((Byte *)pFld1),
                    15,
                    AdvSimd.LoadVector128((Byte *)pFld2),
                    15
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld3, _dataTable.outArrayPtr);
            }
        }
Пример #21
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__CompareTest_Vector64_UInt32();

            fixed(Vector64 <UInt32> *pFld1 = &test._fld1)
            fixed(Vector64 <UInt32> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.CompareTest(
                    AdvSimd.LoadVector64((UInt32 *)(pFld1)),
                    AdvSimd.LoadVector64((UInt32 *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__AbsoluteCompareGreaterThanOrEqual_Vector128_Double();

            fixed(Vector128 <Double> *pFld1 = &test._fld1)
            fixed(Vector128 <Double> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.Arm64.AbsoluteCompareGreaterThanOrEqual(
                    AdvSimd.LoadVector128((Double *)(pFld1)),
                    AdvSimd.LoadVector128((Double *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed(Vector128 <Int32> *pFld1 = &_fld1)
            fixed(Vector64 <Int16> *pFld2 = &_fld2)
            fixed(Vector64 <Int16> *pFld3 = &_fld3)
            {
                var result = AdvSimd.MultiplyDoublingWideningLowerByScalarAndAddSaturate(
                    AdvSimd.LoadVector128((Int32 *)(pFld1)),
                    AdvSimd.LoadVector64((Int16 *)(pFld2)),
                    AdvSimd.LoadVector64((Int16 *)(pFld3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld2, _fld3, _dataTable.outArrayPtr);
            }
        }
        public void RunClassFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario_Load));

            fixed(Vector64 <UInt32> *pFld1 = &_fld1)
            fixed(Vector64 <UInt32> *pFld2 = &_fld2)
            fixed(Vector64 <UInt32> *pFld3 = &_fld3)
            {
                var result = AdvSimd.MultiplyAddByScalar(
                    AdvSimd.LoadVector64((UInt32 *)(pFld1)),
                    AdvSimd.LoadVector64((UInt32 *)(pFld2)),
                    AdvSimd.LoadVector64((UInt32 *)(pFld3))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_fld1, _fld2, _fld3, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));
            var test = new ImmBinaryOpTest__ShiftRightArithmeticNarrowingSaturateUpper_Vector128_Int32_1();

            fixed(Vector64 <Int32> *pFld1 = &test._fld1)
            fixed(Vector128 <Int64> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ShiftRightArithmeticNarrowingSaturateUpper(
                    AdvSimd.LoadVector64((Int32 *)(pFld1)),
                    AdvSimd.LoadVector128((Int64 *)(pFld2)),
                    1
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new SimpleBinaryOpTest__MultiplyWideningLower_Vector64_Byte();

            fixed(Vector64 <Byte> *pFld1 = &test._fld1)
            fixed(Vector64 <Byte> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.MultiplyWideningLower(
                    AdvSimd.LoadVector64((Byte *)(pFld1)),
                    AdvSimd.LoadVector64((Byte *)(pFld2))
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #27
0
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed(Vector128 <UInt64> *pClsVar1 = &_clsVar1)
            fixed(Vector64 <UInt32> *pClsVar2 = &_clsVar2)
            fixed(Vector64 <UInt32> *pClsVar3 = &_clsVar3)
            {
                var result = AdvSimd.MultiplyBySelectedScalarWideningLowerAndAdd(
                    AdvSimd.LoadVector128((UInt64 *)(pClsVar1)),
                    AdvSimd.LoadVector64((UInt32 *)(pClsVar2)),
                    AdvSimd.LoadVector64((UInt32 *)(pClsVar3)),
                    1
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar2, _clsVar3, _dataTable.outArrayPtr);
            }
        }
Пример #28
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new LoadAndInsertTest__LoadAndInsertScalar_Vector128_Single_3();

            fixed(Vector128 <Single> *pFld1 = &test._fld1)
            fixed(Single * pFld3 = &test._fld3)
            {
                var result = AdvSimd.LoadAndInsertScalar(
                    AdvSimd.LoadVector128((Single *)pFld1),
                    3,
                    pFld3
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld3, _dataTable.outArrayPtr);
            }
        }
Пример #29
0
        public void RunClassLclFldScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario_Load));

            var test = new ExtractVectorTest__ExtractVector128_Int32_1();

            fixed(Vector128 <Int32> *pFld1 = &test._fld1)
            fixed(Vector128 <Int32> *pFld2 = &test._fld2)
            {
                var result = AdvSimd.ExtractVector128(
                    AdvSimd.LoadVector128((Int32 *)pFld1),
                    AdvSimd.LoadVector128((Int32 *)pFld2),
                    ElementIndex
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(test._fld1, test._fld2, _dataTable.outArrayPtr);
            }
        }
Пример #30
0
        public void RunClsVarScenario_Load()
        {
            TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario_Load));

            fixed(Vector64 <Single> *pClsVar1 = &_clsVar1)
            fixed(Vector64 <Single> *pClsVar2 = &_clsVar2)
            fixed(Vector64 <Single> *pClsVar3 = &_clsVar3)
            {
                var result = AdvSimd.Arm64.FusedMultiplySubtractScalarBySelectedScalar(
                    AdvSimd.LoadVector64((Single *)(pClsVar1)),
                    AdvSimd.LoadVector64((Single *)(pClsVar2)),
                    AdvSimd.LoadVector64((Single *)(pClsVar3)),
                    1
                    );

                Unsafe.Write(_dataTable.outArrayPtr, result);
                ValidateResult(_clsVar1, _clsVar2, _clsVar3, _dataTable.outArrayPtr);
            }
        }