func FusedAdd32(x, y, z float32) float32 {
// s390x:"FMADDS\t"
// ppc64le:"FMADDS\t"
+ // arm/7:"MULAF"
+ // arm64:"FMADDS"
return x*y + z
}
-func FusedSub32(x, y, z float32) float32 {
+func FusedSub32_a(x, y, z float32) float32 {
// s390x:"FMSUBS\t"
// ppc64le:"FMSUBS\t"
return x*y - z
}
+func FusedSub32_b(x, y, z float32) float32 {
+ // arm/7:"MULSF"
+ // arm64:"FMSUBS"
+ return z - x*y
+}
+
func FusedAdd64(x, y, z float64) float64 {
// s390x:"FMADD\t"
// ppc64le:"FMADD\t"
+ // arm/7:"MULAD"
+ // arm64:"FMADDD"
return x*y + z
}
-func FusedSub64(x, y, z float64) float64 {
+func FusedSub64_a(x, y, z float64) float64 {
// s390x:"FMSUB\t"
// ppc64le:"FMSUB\t"
return x*y - z
}
+func FusedSub64_b(x, y, z float64) float64 {
+ // arm/7:"MULSD"
+ // arm64:"FMSUBD"
+ return z - x*y
+}
+
// ---------------- //
// Non-floats //
// ---------------- //