Я сравниваю два вектора 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
}
}
Задача :
Если первый индекс совпадает, он повторяется по всем элементам вектора, даже если только первый индекс совпадает.
Как я могу получить все соответствующие индексы только для ускорения этого?