LLVM 3.1 Will Enhance AVX & Bring AVX2 Support

Written by Michael Larabel in LLVM on 26 December 2011 at 08:01 AM EST. Add A Comment
LLVM
While LLVM 3.0 has been barely out for one month and a release schedule for LLVM 3.1 hasn't even been plotted yet, there are already some new details about what this next release of the extremely popular open-source compiler infrastructure will offer.

In particular, LLVM 3.1 is poised to offer bug-fixes and overall improved support for Advanced Vector Extensions. AVX is the x86 instruction set extension that first appeared with Intel Sandy Bridge processors in early 2011 and then made their way to the AMD side with the Bulldozer launch.

GCC 4.6 offered AVX support that worked with the Sandy Bridge CPUs, but on the LLVM side they weren't as quick to adopt support for this new instruction set. As mentioned before. "Key points of the AVX ISA is expecting the vector data width to 256-bits, a new SIMD instruction format, and new data manipulation and arithmetic compute primitives. Simply put, AVX is meant to be another step forward for increasing the processor's performance and efficiency."

Within LLVM 3.1, there is "bug fixes and improved support for AVX1." However, that is not all.

Also coming in LLVM 3.1 will be preliminary support for AVX2. AVX2 is the second version of the Advanced Vector Extensions that will expand most AVX integer instructions to 256-bit, support three-operand bit manipulation and multiply, Gather support, vector shifts, and other new functionality. AVX2 isn't set to appear on any hardware until 2013 when Intel brings forth the Haswell processors (the next-generation Ivy Bridge CPUs are AVX1 still), so it's good to see the LLVM crew on top of their support game this time around and the AVX2 support will hopefully mature in LLVM over the next year.

Scanning the LLVM commit logs in the past month or two does show several AVX1/AVX2 related commits. The AVX1/AVX2 work is also mentioned in the very premature LLVM release notes page that's currently tracking LLVM 3.1 development.

On the GCC side there's also been early work towards supporting the AVX2 instruction set. Preliminary patches there have been floating around since August, among other AVX-related patches.

LLVM 3.1 will be released at some point in 2012.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week