Optimize exp2() polynomial evaluation using FMA

Bug: b/216472189
Bug: b/169754022
Change-Id: I2014e165898fb1f0fdaef80938e5d97aef11968c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/63551
Reviewed-by: Sean Risser <srisser@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/ShaderCore.cpp b/src/Pipeline/ShaderCore.cpp
index d58aacf..381521f 100644
--- a/src/Pipeline/ShaderCore.cpp
+++ b/src/Pipeline/ShaderCore.cpp
@@ -362,7 +362,7 @@
 	Float4 d = As<Float4>(Int4(0x3E75EDB7));  // 2.4016463e-1f
 	Float4 e = As<Float4>(Int4(0x3F31725D));  // 6.9315127e-1f
 
-	Float4 ff = ((((a * f + b) * f + c) * f + d) * f + e) * f + Float4(1.0f);
+	Float4 ff = MulAdd(MulAdd(MulAdd(MulAdd(MulAdd(a, f, b), f, c), f, d), f, e), f, 1.0f);
 
 	return ii * ff;
 }