[2/4] benchtests: Add fmax/fmin benchmarks
Commit Message
This patch adds fmax and fmin benchtests. It is based math/s_fmax_template.c
implementation which checks for basically four different classes:
1. if x is greater or equal than y.
2. if x is less than y.
3. if x or y is signaling.
4. if y is nan.
Cases 1 and 2 are used for default input number (by mixing normal double
numbers and infinity), while case 3 and 4 are used each for on for a
benchmark class.
Checked on x86_64-linux-gnu and powerpc64-linux-gnu.
* benchtests/Makefile (bench-math): Add fmin and fmax.
* benchtests/fmax-inputs: New file.
* benchtests/fmin-inputs: Likewise.
---
ChangeLog | 4 ++++
benchtests/Makefile | 2 +-
benchtests/fmax-inputs | 23 +++++++++++++++++++++++
benchtests/fmin-inputs | 23 +++++++++++++++++++++++
4 files changed, 51 insertions(+), 1 deletion(-)
create mode 100644 benchtests/fmax-inputs
create mode 100644 benchtests/fmin-inputs
Comments
On Monday 19 December 2016 07:34 PM, Adhemerval Zanella wrote:
> This patch adds fmax and fmin benchtests. It is based math/s_fmax_template.c
> implementation which checks for basically four different classes:
>
> 1. if x is greater or equal than y.
> 2. if x is less than y.
> 3. if x or y is signaling.
> 4. if y is nan.
>
> Cases 1 and 2 are used for default input number (by mixing normal double
> numbers and infinity), while case 3 and 4 are used each for on for a
> benchmark class.
>
> Checked on x86_64-linux-gnu and powerpc64-linux-gnu.
>
> * benchtests/Makefile (bench-math): Add fmin and fmax.
> * benchtests/fmax-inputs: New file.
> * benchtests/fmin-inputs: Likewise.
Looks good to me.
Siddhesh
I'd advise using -fno-builtin for these benchmarks to make sure they
really do test the libm functions not compiler built-in functions (really,
all benchmarks more generally should use -fno-builtin).
On 19/12/2016 14:24, Joseph Myers wrote:
> I'd advise using -fno-builtin for these benchmarks to make sure they
> really do test the libm functions not compiler built-in functions (really,
> all benchmarks more generally should use -fno-builtin).
>
I will add -fno-builtin on f{max,min}{f} benchtests.
@@ -24,7 +24,7 @@ subdir := benchtests
include ../Makeconfig
bench-math := acos acosh asin asinh atan atanh cos cosh exp exp2 log log2 \
- modf pow rint sin sincos sinh sqrt tan tanh
+ modf pow rint sin sincos sinh sqrt tan tanh fmin fmax
bench-pthread := pthread_once
new file mode 100644
@@ -0,0 +1,23 @@
+## includes: math.h
+## args: double:double
+## ret: double
+78.5, -78.5
+-78.5, 78.5
+0, 78.5
+78.5, 0
+0, -78.5
+-78.5, 0
+__builtin_inf (), 78.5
+__builtin_inf (), -78.5
+78.5, __builtin_inf ()
+-78.5, __builtin_inf ()
+## name: qNaN
+__builtin_nan (""), 78.5
+__builtin_nan (""), -78.5
+78.5, __builtin_nan ("")
+-78.5, __builtin_nan ("")
+## name: sNaN
+__builtin_nans (""), 78.5
+__builtin_nans (""), -78.5
+78.5, __builtin_nans ("")
+-78.5, __builtin_nans ("")
new file mode 100644
@@ -0,0 +1,23 @@
+## includes: math.h
+## args: double:double
+## ret: double
+78.5, -78.5
+-78.5, 78.5
+0, 78.5
+78.5, 0
+0, -78.5
+-78.5, 0
+__builtin_inf (), 78.5
+__builtin_inf (), -78.5
+78.5, __builtin_inf ()
+-78.5, __builtin_inf ()
+## name: qNaN
+__builtin_nan (""), 78.5
+__builtin_nan (""), -78.5
+78.5, __builtin_nan ("")
+-78.5, __builtin_nan ("")
+## name: sNaN
+__builtin_nans (""), 78.5
+__builtin_nans (""), -78.5
+78.5, __builtin_nans ("")
+-78.5, __builtin_nans ("")