Example #1
0
        public void RunFldScenario()
        {
            const byte imm8 = 11;

            var result = Sse41.MultipleSumAbsoluteDifferences(_fld1, _fld2, imm8);

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(_fld1, _fld2, imm8, _dataTable.outArrayPtr);
        }
Example #2
0
        public void RunLclFldScenario()
        {
            const byte imm8 = 10;

            var test   = new SimpleBinaryOpTest__MultipleSumAbsoluteDifferences();
            var result = Sse41.MultipleSumAbsoluteDifferences(test._fld1, test._fld2, imm8);

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(test._fld1, test._fld2, imm8, _dataTable.outArrayPtr);
        }
Example #3
0
        public void RunLclVarScenario_LoadAligned()
        {
            const byte imm8 = 9;

            var left   = Sse2.LoadAlignedVector128((Byte *)(_dataTable.inArray1Ptr));
            var right  = Sse2.LoadAlignedVector128((Byte *)(_dataTable.inArray2Ptr));
            var result = Sse41.MultipleSumAbsoluteDifferences(left, right, imm8);

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(left, right, imm8, _dataTable.outArrayPtr);
        }
Example #4
0
        public void RunLclVarScenario_UnsafeRead()
        {
            const byte imm8 = 7;

            var left   = Unsafe.Read <Vector128 <Byte> >(_dataTable.inArray1Ptr);
            var right  = Unsafe.Read <Vector128 <Byte> >(_dataTable.inArray2Ptr);
            var result = Sse41.MultipleSumAbsoluteDifferences(left, right, imm8);

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(left, right, imm8, _dataTable.outArrayPtr);
        }
Example #5
0
        public void RunClsVarScenario()
        {
            const byte imm8 = 6;

            var result = Sse41.MultipleSumAbsoluteDifferences(
                _clsVar1,
                _clsVar2,
                imm8
                );

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(_clsVar1, _clsVar2, imm8, _dataTable.outArrayPtr);
        }
Example #6
0
        public void RunBasicScenario_LoadAligned()
        {
            const byte imm8 = 2;

            var result = Sse41.MultipleSumAbsoluteDifferences(
                Sse2.LoadAlignedVector128((Byte *)(_dataTable.inArray1Ptr)),
                Sse2.LoadAlignedVector128((Byte *)(_dataTable.inArray2Ptr)),
                imm8
                );

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(_dataTable.inArray1Ptr, _dataTable.inArray2Ptr, imm8, _dataTable.outArrayPtr);
        }
Example #7
0
        public void RunBasicScenario_UnsafeRead()
        {
            const byte imm8 = 0;

            var result = Sse41.MultipleSumAbsoluteDifferences(
                Unsafe.Read <Vector128 <Byte> >(_dataTable.inArray1Ptr),
                Unsafe.Read <Vector128 <Byte> >(_dataTable.inArray2Ptr),
                imm8
                );

            Unsafe.Write(_dataTable.outArrayPtr, result);
            ValidateResult(_dataTable.inArray1Ptr, _dataTable.inArray2Ptr, imm8, _dataTable.outArrayPtr);
        }
Example #8
0
 public static Vector128 <ushort> _mm_mpsadbw_epu8(Vector128 <byte> left, Vector128 <byte> right, byte mask)
 {
     return(Sse41.MultipleSumAbsoluteDifferences(left, right, mask));
 }