]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
benchtests: Add fmax/fmin benchmarks
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 16 Dec 2016 19:10:58 +0000 (19:10 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 19 Dec 2016 18:04:16 +0000 (16:04 -0200)
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.

ChangeLog
benchtests/Makefile
benchtests/fmax-inputs [new file with mode: 0644]
benchtests/fmin-inputs [new file with mode: 0644]

index fdb68ea4daa3653e5c0dbdca62651012c24cca26..819c09b1640327617e4f9cc94e6a3e7e798a3e2b 100644 (file)
--- 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.
index ba4d06883a261d3fc45090d5c23f29a0684e0bbb..2aad3c2703903bea727f900771db2e561734a562 100644 (file)
@@ -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 (file)
index 0000000..18eb8fe
--- /dev/null
@@ -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 (file)
index 0000000..18eb8fe
--- /dev/null
@@ -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 ("")