From: David Given Date: Mon, 31 Oct 2016 18:55:16 +0000 (+0100) Subject: Also use fmadd for single-precision floats. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=44f0cea6ca8914f52c834d53ae5f0c59fd9e2436;p=ack.git Also use fmadd for single-precision floats. --- diff --git a/mach/powerpc/mcg/table b/mach/powerpc/mcg/table index 159d0332b..6a581e3df 100644 --- a/mach/powerpc/mcg/table +++ b/mach/powerpc/mcg/table @@ -719,6 +719,14 @@ PATTERNS emit "fmadd %out, %m1, %m2, %m3" cost 4; + out:(float)reg = ADDF.F(MULF.D(m1:(float)reg, m2:(float)reg), m3:(float)reg) + emit "fmadds %out, %m1, %m2, %m3" + cost 4; + + out:(float)reg = ADDF.F(m3:(float)reg, MULF.D(m1:(float)reg, m2:(float)reg)) + emit "fmadds %out, %m1, %m2, %m3" + cost 4; + out:(float)reg = NEGF.F(left:(float)reg) emit "fneg %out, %left" cost 4;