internal ushort MinSIMD(ushort us0, ushort us1, ushort us2, ushort us3, ushort us4, ushort us5, ushort us6, ushort us7) { var values = Vector128.Create(us0, us1, us2, us3, us4, us5, us6, us7); return(Sse41.MinHorizontal(values).GetElement(0)); }
public void RunFldScenario() { var result = Sse41.MinHorizontal(_fld); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_fld, _dataTable.outArrayPtr); }
public void RunLclFldScenario() { var test = new SimpleUnaryOpTest__MinHorizontal(); var result = Sse41.MinHorizontal(test._fld); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(test._fld, _dataTable.outArrayPtr); }
public void RunLclVarScenario_LoadAligned() { var firstOp = Sse2.LoadAlignedVector128((UInt16 *)(_dataTable.inArrayPtr)); var result = Sse41.MinHorizontal(firstOp); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(firstOp, _dataTable.outArrayPtr); }
public void RunLclVarScenario_UnsafeRead() { var firstOp = Unsafe.Read <Vector128 <UInt16> >(_dataTable.inArrayPtr); var result = Sse41.MinHorizontal(firstOp); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(firstOp, _dataTable.outArrayPtr); }
public void RunBasicScenario_LoadAligned() { var result = Sse41.MinHorizontal( Sse2.LoadAlignedVector128((UInt16 *)(_dataTable.inArrayPtr)) ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArrayPtr, _dataTable.outArrayPtr); }
public void RunBasicScenario_UnsafeRead() { var result = Sse41.MinHorizontal( Unsafe.Read <Vector128 <UInt16> >(_dataTable.inArrayPtr) ); Unsafe.Write(_dataTable.outArrayPtr, result); ValidateResult(_dataTable.inArrayPtr, _dataTable.outArrayPtr); }
public int Shanten() { var b2 = Ssse3.Shuffle(_b, _reverseBVector); var r0 = Sse2.Add(_a, b2); var r1 = Sse2.Subtract(_inversionVector, r0); var r3 = Sse2.ShiftRightLogical(r1.AsInt16(), 8); var r4 = Sse2.Min(r1, r3.AsByte()); var r5 = Sse41.MinHorizontal(r4.AsUInt16()); var r6 = (byte)Sse2.ConvertToInt32(r5.AsInt32()); return(r6 - 1); }
public static Vector128 <ushort> _mm_minpos_epu16(Vector128 <ushort> value) { return(Sse41.MinHorizontal(value)); }