From 1da534ada8a66424e0d23e94ab6750b689be6d64 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Thu, 13 Sep 2018 22:35:13 +0000 Subject: [PATCH] s390x: add single instruction fma and fmaf These are available in the s390x baseline isa -march=z900. --- src/math/s390x/fma.c | 7 +++++++ src/math/s390x/fmaf.c | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 src/math/s390x/fma.c create mode 100644 src/math/s390x/fmaf.c diff --git a/src/math/s390x/fma.c b/src/math/s390x/fma.c new file mode 100644 index 00000000..86da0e49 --- /dev/null +++ b/src/math/s390x/fma.c @@ -0,0 +1,7 @@ +#include + +double fma(double x, double y, double z) +{ + __asm__ ("madbr %0, %1, %2" : "+f"(z) : "f"(x), "f"(y)); + return z; +} diff --git a/src/math/s390x/fmaf.c b/src/math/s390x/fmaf.c new file mode 100644 index 00000000..f1aec6ad --- /dev/null +++ b/src/math/s390x/fmaf.c @@ -0,0 +1,7 @@ +#include + +float fmaf(float x, float y, float z) +{ + __asm__ ("maebr %0, %1, %2" : "+f"(z) : "f"(x), "f"(y)); + return z; +} -- 2.25.1