Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.

VEX encoding - 32bit and 64bit

Christian_M_2
Beginner
439 Views

AVX instructions came along with the new VEX instruction encoding.

Therefore one should compile with option /arch:AVX (or other depending on compiler). Are there any restrictions concerning 32bit or 64bit compilation?

My real question is: Do I get the same performance of AVX compiled for 32 and 64 bit? Or is the VEX encoding only possible for 64 bit, for example? This would lead to transition penalties (SSE to AVX or vice versa) more often.

I could not find a clear answer on this.

0 Kudos
2 Replies
TimP
Honored Contributor III
439 Views

AVX transitions are handled the same by 32- and 64-bit compilers.  The most likely difference between 32- and 64-bit mode, if you don't specify alignments, is in the better (but still not optimum) default alignments of 64-bit OS.  Even if you mix SSE and AVX intrinsics, current Intel compiler should attempt to deal with SSE to AVX transitions automatically.  You would have to code in asm if you really want to provoke transition stalls.

0 Kudos
Christian_M_2
Beginner
439 Views

Thank you this information is very valuable for me!

0 Kudos
Reply