I am trying to compile an application on Windows with PGI 11.1 using -fastsse option. But I am getting error messages from assembler:
C:\DOCUME~1..\LOCALS~1\Temp\3\pgcc3bRaebbp8O_1uR.s: Assembler messages:
C:\DOCUME~1..\LOCALS~1\Temp\3\pgcc3bRaebbp8O_1uR.s:516: Error: no such instruction: pcmpeqq %xmm3,%xmm0' C:\DOCUME~1\..\LOCALS~1\Temp\3\pgcc3bRaebbp8O_1uR.s:524: Error: no such instruction: pcmpeqq %xmm3,%xmm0’
C:\DOCUME~1..\LOCALS~1\Temp\3\pgcc3bRaebbp8O_1uR.s:532: Error: no such instruction: `pcmpeqq %xmm3,%xmm0’
If it were Linux it would be a problem with binutils. What about Windows?
PGI provides it’s own assembler on Windows. The current one hasn’t been updated to include SSE4 yet. We do have an updated version, that also includes support for AVX, available as part of the 11.2 release. It will not be the default assembler so you will need to manually replace “as64.exe” with “as64new.exe” (or “as32.exe” with “as632new.exe”) or pass to the compiler “AS=as64new.exe”.
Most likely you’re on a system that supports AVX but the OS and assembler is a little older so doesn’t recognize these new instructions. The two solutions are to either have PGI target and older processors (such as -tp=penryn-64 (Intel) or -tp=barcelona=64 (AMD), or -tp=px-64 (generic 64-bit)), or update your binutils (which at the assembler is part). You can find the latest binuilts at Index of /gnu/binutils.
Though to be sure, can you please post an example of the unknown instruction and the output from “pgcpud”?