diff --git a/Lib/fontTools/varLib/iup.py b/Lib/fontTools/varLib/iup.py index 41be6ba4f..9ff6c0eca 100644 --- a/Lib/fontTools/varLib/iup.py +++ b/Lib/fontTools/varLib/iup.py @@ -74,7 +74,14 @@ def iup_segment( d = d2 else: # Interpolate - d = d1 + (x - x1) * scale + # + # NOTE: we assign an explicit intermediate variable here in + # order to disable a fused mul-add optimization. See: + # + # - https://godbolt.org/z/YsP4T3TqK, + # - https://github.com/fonttools/fonttools/issues/3703 + nudge = (x - x1) * scale + d = d1 + nudge out.append(d)