4 Replies Latest reply on Sep 1, 2012 8:02 PM by talbane12

    Open64 4.5.2 generates invalid AVX instruction

    mnijhuis

      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?

       

      Maik