fma(a,b,c) entspricht a*b+c, außer dass das Zwischenergebnis nicht abgerundet wird. Können Sie mir einige Beispiele für Algorithmen nennen, die nicht von dieser Rundung profitieren? Es ist nicht offen
mit GCC 5.3 der folgende Code mit compield -O3 -fma float mul_add(float a, float b, float c) {
return a*b + c;
}
erzeugt die folgende Montage vfmadd132ss %xmm1, %xmm2, %xmm0
ret
I noticed
Diese Frage ist für gepackte, single-prec Floating-Ops mit XMM/YMM-Registern auf Haswell. So nach den ehrfürchtigen, ehrfürchtigentable zusammengestellt von Agner Nebel, ich weiß, dass MUL entweder p0