Intel Prepares GCC Compiler Support For BFloat16

Written by Michael Larabel in Intel on 13 April 2019 at 01:56 AM EDT. 33 Comments
Intel developers continue prepping the Linux support for next-generation Intel Xeon "Cooper Lake" processors, particularly around its addition of the new BFloat16 instruction.

BFloat16 is a new floating-point format optimized for machine learning workloads. Besides being found in next-gen Cooper Lake processors, BF16 is also found within Intel's Nervana neural network processors and FPGAs.

Earlier this month Intel developers added BFloat16 support for GNU Gas while now they have sent out their latest patch enabling BFloat16 support within the GNU Compiler Collection (GCC).

The patch enables the compiler-side work around the new instructions for BFloat16: VCVTNE2PS2BF16, VCVTNEPS2BF16, and VDPBF16PS. These AVX512BF16 instructions allow converting two packed single data to one packed BF16 data, converting packed single data to packed BF16 data, and performing a dot product of BF16 pairs accumulated into packed single precision.

The patch is now out for review. We'll see if it manages to slide into trunk for GCC 9 with GCC 9.1's release being imminent or will have to wait until next year's GCC 10 compiler release.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of 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 automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week