Как рассчитать произведение векторной точки с помощью встроенных функций SSE в C

Я пытаюсь умножить два вектора вместе, где каждый элемент одного вектора умножается на элемент в том же индексе в другом векторе. Затем я хочу суммировать все элементы результирующего вектора, чтобы получить одно число. Например, расчет будет выглядеть для векторов {1,2,3,4} и {5,6,7,8}:

1 * 5 + 2 * 6 + 3 * 7 + 4 * 8

По сути, я беру скалярное произведение двух векторов. Я знаю, что для этого есть команда SSE, но у этой команды нет встроенной функции, связанной с ней. На данный момент я не хочу писать встроенную сборку в моем C-коде, поэтому я хочу использовать только встроенные функции. Это похоже на общий расчет, поэтому я сам удивлен, что не смог найти ответ в Google.

Примечание: я оптимизирую для конкретной микро архитектуры, которая поддерживает до SSE 4.2.

Спасибо за вашу помощь.

Ответы на вопрос(4)

Ваш ответ на вопрос