public void RunStructFldScenario(SimpleTernaryOpTest__MultiplyWideningAndAddSaturateInt16 testClass) { var result = AvxVnni.MultiplyWideningAndAddSaturate(_fld0, _fld1, _fld2); Unsafe.Write(testClass._dataTable.outArrayPtr, result); testClass.ValidateResult(_fld0, _fld1, _fld2, testClass._dataTable.outArrayPtr); }
public void RunClassFldScenario() { TestLibrary.TestFramework.BeginScenario(nameof(RunClassFldScenario)); var result = AvxVnni.MultiplyWideningAndAddSaturate(_fld0, _fld1, _fld2); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_fld0, _fld1, _fld2, _dataTable.outArrayPtr); }
public void RunStructLclFldScenario() { TestLibrary.TestFramework.BeginScenario(nameof(RunStructLclFldScenario)); var test = TestStruct.Create(); var result = AvxVnni.MultiplyWideningAndAddSaturate(test._fld0, test._fld1, test._fld2); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(test._fld0, test._fld1, test._fld2, _dataTable.outArrayPtr); }
public void RunClassLclFldScenario() { TestLibrary.TestFramework.BeginScenario(nameof(RunClassLclFldScenario)); var test = new SimpleTernaryOpTest__MultiplyWideningAndAddSaturateInt16(); var result = AvxVnni.MultiplyWideningAndAddSaturate(test._fld0, test._fld1, test._fld2); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(test._fld0, test._fld1, test._fld2, _dataTable.outArrayPtr); }
public void RunLclVarScenario_LoadAligned() { TestLibrary.TestFramework.BeginScenario(nameof(RunLclVarScenario_LoadAligned)); var first = Avx.LoadAlignedVector256((Int32 *)(_dataTable.inArray0Ptr)); var second = Avx.LoadAlignedVector256((Int16 *)(_dataTable.inArray1Ptr)); var third = Avx.LoadAlignedVector256((Int16 *)(_dataTable.inArray2Ptr)); var result = AvxVnni.MultiplyWideningAndAddSaturate(first, second, third); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(first, second, third, _dataTable.outArrayPtr); }
public void RunBasicScenario_Load() { TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario_Load)); var result = AvxVnni.MultiplyWideningAndAddSaturate( Avx.LoadVector256((Int32 *)(_dataTable.inArray0Ptr)), Avx.LoadVector256((Int16 *)(_dataTable.inArray1Ptr)), Avx.LoadVector256((Int16 *)(_dataTable.inArray2Ptr))); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArray0Ptr, _dataTable.inArray1Ptr, _dataTable.inArray2Ptr, _dataTable.outArrayPtr); }
public void RunLclVarScenario_UnsafeRead() { TestLibrary.TestFramework.BeginScenario(nameof(RunLclVarScenario_UnsafeRead)); var first = Unsafe.Read <Vector256 <Int32> >(_dataTable.inArray0Ptr); var second = Unsafe.Read <Vector256 <Byte> >(_dataTable.inArray1Ptr); var third = Unsafe.Read <Vector256 <SByte> >(_dataTable.inArray2Ptr); var result = AvxVnni.MultiplyWideningAndAddSaturate(first, second, third); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(first, second, third, _dataTable.outArrayPtr); }
public void RunBasicScenario_UnsafeRead() { TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario_UnsafeRead)); var result = AvxVnni.MultiplyWideningAndAddSaturate( Unsafe.Read <Vector256 <Int32> >(_dataTable.inArray0Ptr), Unsafe.Read <Vector256 <Byte> >(_dataTable.inArray1Ptr), Unsafe.Read <Vector256 <SByte> >(_dataTable.inArray2Ptr) ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArray0Ptr, _dataTable.inArray1Ptr, _dataTable.inArray2Ptr, _dataTable.outArrayPtr); }