Um carregamento não alocado de SSE inteiro mais rápido que raramente é usado [duplicado]
Esta pergunta já tem uma resposta aqui:
qual é a diferença entre _mm256_lddqu_si256 e _mm256_loadu_si256 1 respostaEu gostaria de saber mais sobre o_mm_lddqu_si128
intrínseco (lddqu
instruções desde SSE3), particularmente em comparação com o_mm_loadu_si128
intrínseco (instrução movdqu desde SSE2).
Eu só descobri_mm_lddqu_si128
hoje. O guia intrínseco da Intel diz
esse intrínseco pode ter um desempenho melhor que _mm_loadu_si128 quando os dados cruzam um limite de linha de cache
eum comentário diz isto
terá um desempenho melhor em determinadas circunstâncias, mas nunca terá um desempenho pior.
Então, por que não é mais usado (o SSE3 é uma barra bastante baixa, já que todos os processadores Core2 o possuem)? Por que ele pode ter um desempenho melhor quando os dados cruzam uma linha de cache? Élddqu
possivelmente melhor apenas em um determinado subconjunto de processadores. Por exemplo. antes de Nehalem?
Sei que poderia ler um manual da Intel para provavelmente encontrar a resposta, mas acho que essa pergunta pode ser interessante para outras pessoas.