views:

408

answers:

2

I'd like to start and play with some AVX (advanced vector extension) instructions. I know Intel provides an emulator to test software containing these instructions (see this question), but since I don't want to manually write hex code, the question arises as to which assemblers currently know the AVX instruction set?

I would be most interested in assemblers that run under Windows and can be made to accept Intel syntax.

+3  A: 

MASM 64Bits (ML64.EXE) seems to support AVX instruction set.

From MS vcblog, it is said:

Support for AVX in Intel and AMD processors: Intel AVX (Intel Advanced Vector Extensions) is a 256 bit instruction set extension to SSE and is designed for applications that are floating point intensive [...].

In VS2010 release, all AVX features and instructions are fully supported via intrinsic and /arch:AVX. Many optimizations have been added to improve the code quality of AVX code generation which will be described with more details in an upcoming blog post. In addition to AVX support in the compiler, the Microsoft Macro Assembler (MASM) in VS2010 also supports the Intel AVX instruction set for x86 and x64.

EDIT:

YASM and NASM seems to support Intel AVX too, according this page: http://software.intel.com/en-us/articles/intel-software-development-emulator/

Stringer Bell
What version would that be? (My - admittedly old - copy doesn't seem to.)
PhiS
I believe it's the masm version that ships with Visual Studio 2010 Beta 2. Keep in mind that there are still no AVX capable CPU out there..
Stringer Bell
Great! (I did mention the emulator exactly because there are no AVX capable CPUs yet.)
PhiS
+4  A: 

Besides masm, recent yasm and gas do support avx too, and so does the inline assembler of gcc.

drhirsch