Also use fmadd for single-precision floats.
authorDavid Given <dg@cowlark.com>
Mon, 31 Oct 2016 18:55:16 +0000 (19:55 +0100)
committerDavid Given <dg@cowlark.com>
Mon, 31 Oct 2016 18:55:16 +0000 (19:55 +0100)
mach/powerpc/mcg/table

index 159d033..6a581e3 100644 (file)
@@ -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;