mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
powerpc: fma using builtins
This patch just refactor the assembly implementation to use compiler builtins instead. Checked on powerpc-linux-gnu (built without --with-cpu, with --with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch), powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+ and --disable-multi-arch). * sysdeps/powerpc/fpu/s_fma.S: Remove file. * sysdeps/powerpc/fpu/s_fmaf.S: Likewise. * sysdeps/powerpc/fpu/s_fma.c: New file. * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
This commit is contained in:
parent
1dac8bd6f2
commit
3a16dd780e
@ -1,5 +1,10 @@
|
||||
2019-04-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
* sysdeps/powerpc/fpu/s_fma.S: Remove file.
|
||||
* sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
|
||||
* sysdeps/powerpc/fpu/s_fma.c: New file.
|
||||
* sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
|
||||
|
||||
* sysdeps/powerpc/fpu/s_fabs.S: Remove file.
|
||||
* sysdeps/powerpc/fpu/s_fabsf.S: Likewise.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compute x * y + z as ternary operation. PowerPC version.
|
||||
Copyright (C) 2010-2019 Free Software Foundation, Inc.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -19,10 +19,8 @@
|
||||
#include <sysdep.h>
|
||||
#include <libm-alias-double.h>
|
||||
|
||||
ENTRY_TOCLESS(__fma)
|
||||
/* double [f1] fma (double [f1] x, double [f2] y, double [f3] z); */
|
||||
fmadd fp1,fp1,fp2,fp3
|
||||
blr
|
||||
END(__fma)
|
||||
|
||||
double __fma (double x, double y, double z)
|
||||
{
|
||||
return __builtin_fma (x, y, z);
|
||||
}
|
||||
libm_alias_double (__fma, fma)
|
@ -1,5 +1,5 @@
|
||||
/* Compute x * y + z as ternary operation. PowerPC version.
|
||||
Copyright (C) 2010-2019 Free Software Foundation, Inc.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -19,10 +19,8 @@
|
||||
#include <sysdep.h>
|
||||
#include <libm-alias-float.h>
|
||||
|
||||
ENTRY_TOCLESS(__fmaf)
|
||||
/* float [f1] fmaf (float [f1] x, float [f2] y, float [f3] z); */
|
||||
fmadds fp1,fp1,fp2,fp3
|
||||
blr
|
||||
END(__fmaf)
|
||||
|
||||
float __fmaf (float x, float y, float z)
|
||||
{
|
||||
return __builtin_fmaf (x, y, z);
|
||||
}
|
||||
libm_alias_float (__fma, fma)
|
Loading…
Reference in New Issue
Block a user