aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-12-16 19:10:58 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-12-19 16:04:16 -0200
commit5d1f604a87214e133d0adf9dbd53891138b5276c (patch)
tree72dbeed71129a6bcae48aaf2445f3f4e10723c03
parentAdjust benchtests to new support library. (diff)
downloadglibc-5d1f604a87214e133d0adf9dbd53891138b5276c.tar.gz
glibc-5d1f604a87214e133d0adf9dbd53891138b5276c.tar.bz2
glibc-5d1f604a87214e133d0adf9dbd53891138b5276c.zip
benchtests: Add fmax/fmin benchmarks
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. (CFLAGS-bench-fmax.c): New rule. (CFLAGS-bench-fmin.c): New rule. * benchtests/fmax-inputs: New file. * benchtests/fmin-inputs: Likewise.
-rw-r--r--ChangeLog6
-rw-r--r--benchtests/Makefile4
-rw-r--r--benchtests/fmax-inputs23
-rw-r--r--benchtests/fmin-inputs23
4 files changed, 55 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fdb68ea4da..819c09b164 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2016-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ * benchtests/Makefile (bench-math): Add fmin and fmax.
+ (CFLAGS-bench-fmax.c): New rule.
+ (CFLAGS-bench-fmin.c): Likewise.
+ * benchtests/fmax-inputs: New file.
+ * benchtests/fmin-inputs: Likewise.
+
* benchtests/bench-string.h (TEST_FUNCTION): Use name without
parenthesis.
(CMDLINE_PROCESS): Define using function instead of macro.
diff --git a/benchtests/Makefile b/benchtests/Makefile
index ba4d06883a..2aad3c2703 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -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
@@ -73,6 +73,8 @@ benchset := $(string-benchset-all) $(stdlib-benchset) $(stdio-common-benchset) \
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-fmax.c += -fno-builtin
bench-malloc := malloc-thread
diff --git a/benchtests/fmax-inputs b/benchtests/fmax-inputs
new file mode 100644
index 0000000000..18eb8feb34
--- /dev/null
+++ b/benchtests/fmax-inputs
@@ -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 ("")
diff --git a/benchtests/fmin-inputs b/benchtests/fmin-inputs
new file mode 100644
index 0000000000..18eb8feb34
--- /dev/null
+++ b/benchtests/fmin-inputs
@@ -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 ("")