Open64 4.5.2 generates invalid AVX instruction

Discussion created by mnijhuis on Aug 31, 2012
Latest reply on Sep 1, 2012 by talbane12

While compiling FFTW 3.3.1 for the Interlagos architecture, with AVX instructions, Open64 generates the following incorrect instructions in the output assembly file:


vmovsd %ymm0,360(%rsp)

vmovsd 360(%rsp),%ymm4


According to the AMD64 Architecture Programmer's Manual, Volume 4 (Publication No 26568), these instructions are indeed incorrect: vmovsd only works with 128-bit xmm registers, and not with 256-bit ymm registers. The correct move instruction is vmovups.


Could you please fix this issue in the next release?