Carregando 8 caracteres da memória em uma variável __m256 como flutuadores de precisão única compactados
Em um esforço para otimizar um algoritmo para desfoque gaussiano, você procure substituir o uso de um buffer flutuante por uma variável intrínseca __m256. Esta questão tem como objetivo determinar as instruções ideais para esta tarefa.
Instruções para arquitetura AVX2:
; rsi = new_image VPMOVZXBD ymm0, [rsi] ; or SX to sign-extend (Byte to DWord) VCVTDQ2PS ymm0, ymm0 ; convert to packed foat
Estratégias adicionais:
Instruções para arquitetura AVX1:
Execute as seguintes etapas:
VPMOVZXBD xmm0, [rsi] VPMOVZXBD xmm1, [rsi 4] VINSERTF128 ymm0, ymm0, xmm1, 1 ; put the 2nd load of data into the high128 of ymm0 VCVTDQ2PS ymm0, ymm0 ; convert to packed float
Considerações intrínsecas:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3