From 6f90ee36e90cb6a6adfd29ee51f0ef8f7e507003 Mon Sep 17 00:00:00 2001 From: smasher164 Date: Thu, 6 Aug 2020 18:37:10 -0400 Subject: [PATCH] math: simplify comparison in FMA when swapping p and z Discovered by Junchen Li on CL 246858, the comparison before p and z are swapped can be simplified from pe < ze || (pe == ze && (pm1 < zm1 || (pm1 == zm1 && pm2 < zm2))) to pe < ze || pe == ze && pm1 < zm1 because zm2 is initialized to 0 before the branch. Change-Id: Iee92d570038df2b0f8941ef6e422a022654ab2d6 Reviewed-on: https://go-review.googlesource.com/c/go/+/247241 Run-TryBot: Akhil Indurti Run-TryBot: Emmanuel Odeke Trust: Emmanuel Odeke TryBot-Result: Go Bot Reviewed-by: Keith Randall --- src/math/fma.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/math/fma.go b/src/math/fma.go index db78dfa5e1..ca0bf99f21 100644 --- a/src/math/fma.go +++ b/src/math/fma.go @@ -128,7 +128,7 @@ func FMA(x, y, z float64) float64 { pe -= int32(is62zero) // Swap addition operands so |p| >= |z| - if pe < ze || (pe == ze && (pm1 < zm1 || (pm1 == zm1 && pm2 < zm2))) { + if pe < ze || pe == ze && pm1 < zm1 { ps, pe, pm1, pm2, zs, ze, zm1, zm2 = zs, ze, zm1, zm2, ps, pe, pm1, pm2 } -- 2.50.0