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; }