From: smasher164 Date: Thu, 6 Aug 2020 22:37:10 +0000 (-0400) Subject: math: simplify comparison in FMA when swapping p and z X-Git-Tag: go1.17beta1~953 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6f90ee36e9;p=gostls13.git 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 --- 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 }