LLVM 3.1 Will Enhance AVX & Bring AVX2 Support

Posted by Michael Larabel on December 26, 2011

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.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Raspberry Pi Gets New Wayland Weston Renderer
  2. Debian GNU/Hurd 2013 Release Brings New Packages
  3. Intel Ultrabook Performance Is Faster With Mesa 9.2
  4. Hot Relocation HDD To SSD Support For Btrfs
  5. Phoronix Test Suite 4.6.0 "Utsira" Released
  6. New Intel X.Org Driver Supports All Of Haswell
  7. SQLite Now Faster With Memory Mapped I/O
  8. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  9. Qt For Tizen Launches, Based On Qt 5.1
  10. KTAP Released For Linux Kernel Dynamic Tracing
  11. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
Latest Forum Talk
  1. Handbrake 0.9.9 Supports OpenCL Offloading
  2. DRM Moves Ahead With HTML5 Specification
  3. Chrome 27 Loads Web Pages Faster
  4. AMD Catalyst 13.4 Final
  5. Microsoft Releases Skype For Linux 4.2, Has...
  6. Raspberry Pi Gets New Wayland Weston Renderer
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite