Intrinsics - получить только все соответствующие индексы - PullRequest
0 голосов
/ 10 февраля 2019

Я сравниваю два вектора using System.Runtime.Intrinsics и хотел бы знать самый быстрый способ получить только все соответствующие индексы.

В данный момент мой код выглядит следующим образом:

static void CompareVectors(Vector128<byte> first, Vector128<byte> second)
{
    var matches = Avx2.MoveMask(Avx2.CompareEqual(first, second));
    if (matches == 0) return;
    var firstIndex = BitOps.TrailingZeroCount(matches) / sizeof(byte);
    for (var j = firstIndex; j < Vector128<sbyte>.Count; j++)
    {
        var matchingValue = first.GetElement(j);
        //do stuff
    }
}

Задача :

Если первый индекс совпадает, он повторяется по всем элементам вектора, даже если только первый индекс совпадает.

Как я могу получить все соответствующие индексы только для ускорения этого?

...