public void RunBasicScenario_UnsafeRead() { TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario_UnsafeRead)); var result = Avx.InsertVector128( Unsafe.Read <Vector256 <Int32> >(_dataTable.inArray1Ptr), (Int32 *)_dataTable.inArray2Ptr, 1 ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArray1Ptr, _dataTable.inArray2Ptr, _dataTable.outArrayPtr); }
public void RunBasicScenario_LoadAligned() { TestLibrary.TestFramework.BeginScenario(nameof(RunBasicScenario_LoadAligned)); var result = Avx.InsertVector128( Avx.LoadAlignedVector256((Int32 *)(_dataTable.inArray1Ptr)), (Int32 *)(_dataTable.inArray2Ptr), 1 ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArray1Ptr, _dataTable.inArray2Ptr, _dataTable.outArrayPtr); }
public void RunClsVarScenario() { TestLibrary.TestFramework.BeginScenario(nameof(RunClsVarScenario)); var result = Avx.InsertVector128( _clsVar1, _clsVar2, 1 ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_clsVar1, _clsVar2, _dataTable.outArrayPtr); }
internal static Vector256 <T> Insert128Vector256(Vector256 <T> value, Vector128 <T> data, byte index) { if (typeof(T) == typeof(sbyte)) { return(Avx2.InsertVector128(value.As <T, sbyte>(), data.As <T, sbyte>(), index).As <sbyte, T>()); } if (typeof(T) == typeof(byte)) { return(Avx2.InsertVector128(value.As <T, byte>(), data.As <T, byte>(), index).As <byte, T>()); } if (typeof(T) == typeof(short)) { return(Avx2.InsertVector128(value.As <T, short>(), data.As <T, short>(), index).As <short, T>()); } if (typeof(T) == typeof(ushort)) { return(Avx2.InsertVector128(value.As <T, ushort>(), data.As <T, ushort>(), index).As <ushort, T>()); } if (typeof(T) == typeof(int)) { return(Avx2.InsertVector128(value.As <T, int>(), data.As <T, int>(), index).As <int, T>()); } if (typeof(T) == typeof(uint)) { return(Avx2.InsertVector128(value.As <T, uint>(), data.As <T, uint>(), index).As <uint, T>()); } if (typeof(T) == typeof(long)) { return(Avx2.InsertVector128(value.As <T, long>(), data.As <T, long>(), index).As <long, T>()); } if (typeof(T) == typeof(ulong)) { return(Avx2.InsertVector128(value.As <T, ulong>(), data.As <T, ulong>(), index).As <ulong, T>()); } if (typeof(T) == typeof(float)) { return(Avx.InsertVector128(value.As <T, float>(), data.As <T, float>(), index).As <float, T>()); } if (typeof(T) == typeof(double)) { return(Avx.InsertVector128(value.As <T, double>(), data.As <T, double>(), index).As <double, T>()); } throw new NotSupportedException(); }