本征-仅获取所有匹配的索引

时间:2019-02-10 16:59:26

标签: c# .net-core intrinsics

我正在比较两个向量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
    }
}

问题

如果第一个索引匹配,即使仅第一个索引匹配,它也会迭代向量中的所有元素。

我怎样才能获得所有匹配的索引,只是为了加快速度?

0 个答案:

没有答案