Compilers Mature For Intel Sandy/Ivy Bridge, Prep For Haswell

Written by Michael Larabel in Software on 27 January 2012 at 02:00 AM EST. Page 2 of 7. 1 Comment.

Within LLVM, the initial AVX (v1) support did not arrive until the LLVM 3.0 release at the beginning of December of 2011. While the LLVM support was officially released nearly a year after Sandy Bridge appeared (and even after AMD's belated Bulldozer was introduced), it was full support for the AVX1 instructions in their x86 LLVM back-end, assembler, and disassembler. AVX2 support by that time was also started.

Due to the LLVM release schedule with the Sandy Bridge support not coming until the end of 2011, it did allow initial Ivy Bridge support to make it into the release (the Ivy Bridge patches for GCC were committed last summer as well). Therefore introduced to LLVM 3.0 was the Sandy/Ivy Bridge support with AVX1 along with the random number generator for Ivy Bridge and SSE4a/BMI instructions (there were even new Atom extensions finally added in too). For those using LLVM/Clang 3.0, the Sandy/Ivy Bridge support is therefore in good shape.

LLVM 3.1, which will be release some time later in this year, has even better AVX1 support for the latest AMD and Intel processors. It also has various AVX1-releated bug-fixes as part of the release. LLVM 3.1 in 2012 will also feature support for Haswell's AVX2 instructions, but at the moment in the current code-base, the support is considered incomplete (hopefully that will change by the final release in some months).


Related Articles