benchtests: Add fmaxf/fminf benchmarks

This patch adds fmaxf and fminf benchtests.  It is based on
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 fminf and fmaxf.
	(CFLAGS-bench-fmaxf.c): New rule.
	(CFLAGS-bench-fminf.c): Likewise.
        * benchtests/fmaxf-inputs: New file.
        * benchtests/fminf-inputs: Likewise.
This commit is contained in:
Adhemerval Zanella 2016-12-19 11:00:45 -02:00
parent 5d1f604a87
commit da16c9b524
4 changed files with 56 additions and 1 deletions

View File

@ -1,5 +1,11 @@
2016-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* benchtests/Makefile (bench-math): Add fminf and fmaxf.
(CFLAGS-bench-fmaxf.c): New rule.
(CFLAGS-bench-fminf.c): Likewise.
* benchtests/fmaxf-inputs: New file.
* benchtests/fminf-inputs: Likewise.
* benchtests/Makefile (bench-math): Add fmin and fmax.
(CFLAGS-bench-fmax.c): New rule.
(CFLAGS-bench-fmin.c): Likewise.

View File

@ -24,7 +24,8 @@ 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 fmin fmax
modf pow rint sin sincos sinh sqrt tan tanh fmin fmax fminf \
fmaxf
bench-pthread := pthread_once
@ -74,7 +75,9 @@ CFLAGS-bench-ffs.c += -fno-builtin
CFLAGS-bench-ffsll.c += -fno-builtin
CFLAGS-bench-sqrt.c += -fno-builtin
CFLAGS-bench-fmin.c += -fno-builtin
CFLAGS-bench-fminf.c += -fno-builtin
CFLAGS-bench-fmax.c += -fno-builtin
CFLAGS-bench-fmaxf.c += -fno-builtin
bench-malloc := malloc-thread

23
benchtests/fmaxf-inputs Normal file
View File

@ -0,0 +1,23 @@
## includes: math.h
## args: float:float
## ret: float
78.5f, -78.5f
-78.5f, 78.5f
0.0f, 78.5f
78.5f, 0.0f
0.0f, -78.5f
-78.5, 0.0f
__builtin_inff (), 78.5f
__builtin_inff (), -78.5f
78.5f, __builtin_inff ()
-78.5f, __builtin_inff ()
## name: qNaN
__builtin_nanf (""), 78.5f
__builtin_nanf (""), -78.5f
78.5f, __builtin_nanf ("")
-78.5f, __builtin_nanf ("")
## name: sNaN
__builtin_nansf (""), 78.5f
__builtin_nansf (""), -78.5f
78.5f, __builtin_nansf ("")
-78.5f, __builtin_nansf ("")

23
benchtests/fminf-inputs Normal file
View File

@ -0,0 +1,23 @@
## includes: math.h
## args: float:float
## ret: float
78.5f, -78.5f
-78.5f, 78.5f
0.0f, 78.5f
78.5f, 0.0f
0.0f, -78.5f
-78.5, 0.0f
__builtin_inff (), 78.5f
__builtin_inff (), -78.5f
78.5f, __builtin_inff ()
-78.5f, __builtin_inff ()
## name: qNaN
__builtin_nanf (""), 78.5f
__builtin_nanf (""), -78.5f
78.5f, __builtin_nanf ("")
-78.5f, __builtin_nanf ("")
## name: sNaN
__builtin_nansf (""), 78.5f
__builtin_nansf (""), -78.5f
78.5f, __builtin_nansf ("")
-78.5f, __builtin_nansf ("")