Use fmadd for multiply-and-add instructions.

This commit is contained in:
David Given 2016-10-31 19:52:17 +01:00
parent e19850b114
commit 064d1a5d5d

View file

@ -711,6 +711,14 @@ PATTERNS
FPU4R(DIVF.F, "fdivs") FPU4R(DIVF.F, "fdivs")
FPU8R(DIVF.D, "fdiv") FPU8R(DIVF.D, "fdiv")
out:(double)reg = ADDF.D(MULF.D(m1:(double)reg, m2:(double)reg), m3:(double)reg)
emit "fmadd %out, %m1, %m2, %m3"
cost 4;
out:(double)reg = ADDF.D(m3:(double)reg, MULF.D(m1:(double)reg, m2:(double)reg))
emit "fmadd %out, %m1, %m2, %m3"
cost 4;
out:(float)reg = NEGF.F(left:(float)reg) out:(float)reg = NEGF.F(left:(float)reg)
emit "fneg %out, %left" emit "fneg %out, %left"
cost 4; cost 4;