diff options
author | Szabolcs Nagy <nsz@port70.net> | 2018-09-13 22:35:13 +0000 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-10-15 14:41:43 -0400 |
commit | 1da534ada8a66424e0d23e94ab6750b689be6d64 (patch) | |
tree | 1259ec21575cfd310e77c8b81d3c0272a72f20b9 | |
parent | 481006fd8887b80c4f794085179047e28102b01a (diff) | |
download | musl-1da534ada8a66424e0d23e94ab6750b689be6d64.tar.gz musl-1da534ada8a66424e0d23e94ab6750b689be6d64.tar.bz2 musl-1da534ada8a66424e0d23e94ab6750b689be6d64.tar.xz musl-1da534ada8a66424e0d23e94ab6750b689be6d64.zip |
s390x: add single instruction fma and fmaf
These are available in the s390x baseline isa -march=z900.
-rw-r--r-- | src/math/s390x/fma.c | 7 | ||||
-rw-r--r-- | src/math/s390x/fmaf.c | 7 |
2 files changed, 14 insertions, 0 deletions
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 <math.h> + +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 <math.h> + +float fmaf(float x, float y, float z) +{ + __asm__ ("maebr %0, %1, %2" : "+f"(z) : "f"(x), "f"(y)); + return z; +} |