Como calcular o produto de pontos vetoriais usando funções intrínsecas do SSE em C

Eu estou tentando multiplicar dois vetores juntos, onde cada elemento de um vetor é multiplicado pelo elemento no mesmo índice no outro vetor. Quero então somar todos os elementos do vetor resultante para obter um número. Por exemplo, o cálculo seria assim para os vetores {1,2,3,4} e {5,6,7,8}:

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

Essencialmente, estou usando o produto escalar dos dois vetores. Eu sei que existe um comando SSE para fazer isso, mas o comando não tem uma função intrínseca associada a ele. Neste ponto, não quero escrever assembly embutido no meu código C, portanto, quero usar apenas funções intrínsecas. Parece um cálculo comum, por isso estou surpreso por não encontrar a resposta no Google.

Nota: Estou otimizando para uma microarquitetura específica que suporta até o SSE 4.2.

Obrigado pela ajuda.

questionAnswers(4)

yourAnswerToTheQuestion