avx - Can I move 256-bit from memory location immediately to YMM registers? -


can move 256-bit memory location ymm registers? if want fill xmm register, use in inline asm in gcc:

          "movlpd mytest_1(%rip),%xmm1 \n\t"           "movhpd mytest_1+8(%rip),%xmm1 \n\t" 

can made easier guess?

furthermore: same procedure move aligned or not 4 quadwords in 1 step ymm0? reverse of vmovdqa ymm1, mem256 source -> destination.

"movlpd mytest_1(%rip),%xmm1 \n\t" "movhpd mytest_1+8(%rip),%xmm1 \n\t" 

these 2 instructions can combined 1 movdqu/movdqa, because x86 little endian architecture

"movdqu mytest_1(%rip),%xmm1 \n\t"    // 16-byte unaligned or "movdqa mytest_1(%rip),%xmm1 \n\t"    // 16-byte aligned 'mytest_1' 

both can used avx 32-bit memory transfer (vmovdqu/vmovdqa):

"vmovdqu mytest_1(%rip),%ymm1 \n\t"   // 32-byte unaligned or "vmovdqa mytest_1(%rip),%ymm1 \n\t"   // 32-byte aligned 'mytest_1' 

regarding second part of question:

i reverse of vmovdqa ymm1, mem256 source -> destination.

this work in both directions, e.g. possible instructions vmovdqa:

vmovdqa ymm1, ymm2/m256   rm   v/v   avx   move aligned packed integer values ymm2/mem ymm1. vmovdqa ymm2/m256, ymm1   mr   v/v   avx   move aligned packed integer values ymm1 ymm2/mem. 

Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -