[PATCH 1/2] benchtests: Add fmaximum and fminimum family benchmarks
Julian Zhu <[email protected]> Fri, 31 Jul 2026 13:32:58 +0800
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Message-ID | <[email protected]> |
Add inputs for the C23 fmaximum, fminimum, fmaximum_num and fminimum_num families in both float and double precision. Cover finite values, infinities, quiet NaNs and signaling NaNs, and disable compiler builtins so the benchmarks exercise libc. Signed-off-by: Julian Zhu <[email protected]> --- benchtests/Makefile | 16 ++++++++++++++++ benchtests/fmaximum-inputs | 23 +++++++++++++++++++++++ benchtests/fmaximum_num-inputs | 23 +++++++++++++++++++++++ benchtests/fmaximum_numf-inputs | 23 +++++++++++++++++++++++ benchtests/fmaximumf-inputs | 23 +++++++++++++++++++++++ benchtests/fminimum-inputs | 23 +++++++++++++++++++++++ benchtests/fminimum_num-inputs | 23 +++++++++++++++++++++++ benchtests/fminimum_numf-inputs | 23 +++++++++++++++++++++++ benchtests/fminimumf-inputs | 23 +++++++++++++++++++++++ 9 files changed, 200 insertions(+) create mode 100644 benchtests/fmaximum-inputs create mode 100644 benchtests/fmaximum_num-inputs create mode 100644 benchtests/fmaximum_numf-inputs create mode 100644 benchtests/fmaximumf-inputs create mode 100644 benchtests/fminimum-inputs create mode 100644 benchtests/fminimum_num-inputs create mode 100644 benchtests/fminimum_numf-inputs create mode 100644 benchtests/fminimumf-inputs diff --git a/benchtests/Makefile b/benchtests/Makefile index f407e492cb..a288c6ca74 100644 --- a/benchtests/Makefile +++ b/benchtests/Makefile @@ -80,8 +80,16 @@ bench-math := \ fmal \ fmax \ fmaxf \ + fmaximum \ + fmaximum_num \ + fmaximum_numf \ + fmaximumf \ fmin \ fminf \ + fminimum \ + fminimum_num \ + fminimum_numf \ + fminimumf \ fmod \ fmodf \ frexp \ @@ -354,6 +362,14 @@ CFLAGS-bench-fma.c += -fno-builtin CFLAGS-bench-fmaf.c += -fno-builtin CFLAGS-bench-fmax.c += -fno-builtin CFLAGS-bench-fmaxf.c += -fno-builtin +CFLAGS-bench-fmaximum.c += -fno-builtin +CFLAGS-bench-fmaximumf.c += -fno-builtin +CFLAGS-bench-fmaximum_num.c += -fno-builtin +CFLAGS-bench-fmaximum_numf.c += -fno-builtin +CFLAGS-bench-fminimum.c += -fno-builtin +CFLAGS-bench-fminimumf.c += -fno-builtin +CFLAGS-bench-fminimum_num.c += -fno-builtin +CFLAGS-bench-fminimum_numf.c += -fno-builtin CFLAGS-bench-trunc.c += -fno-builtin CFLAGS-bench-truncf.c += -fno-builtin CFLAGS-bench-fmod.c += -fno-builtin diff --git a/benchtests/fmaximum-inputs b/benchtests/fmaximum-inputs new file mode 100644 index 0000000000..18eb8feb34 --- /dev/null +++ b/benchtests/fmaximum-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/fmaximum_num-inputs b/benchtests/fmaximum_num-inputs new file mode 100644 index 0000000000..18eb8feb34 --- /dev/null +++ b/benchtests/fmaximum_num-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/fmaximum_numf-inputs b/benchtests/fmaximum_numf-inputs new file mode 100644 index 0000000000..7eb7bda5e4 --- /dev/null +++ b/benchtests/fmaximum_numf-inputs @@ -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 ("") diff --git a/benchtests/fmaximumf-inputs b/benchtests/fmaximumf-inputs new file mode 100644 index 0000000000..7eb7bda5e4 --- /dev/null +++ b/benchtests/fmaximumf-inputs @@ -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 ("") diff --git a/benchtests/fminimum-inputs b/benchtests/fminimum-inputs new file mode 100644 index 0000000000..18eb8feb34 --- /dev/null +++ b/benchtests/fminimum-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/fminimum_num-inputs b/benchtests/fminimum_num-inputs new file mode 100644 index 0000000000..18eb8feb34 --- /dev/null +++ b/benchtests/fminimum_num-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/fminimum_numf-inputs b/benchtests/fminimum_numf-inputs new file mode 100644 index 0000000000..7eb7bda5e4 --- /dev/null +++ b/benchtests/fminimum_numf-inputs @@ -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 ("") diff --git a/benchtests/fminimumf-inputs b/benchtests/fminimumf-inputs new file mode 100644 index 0000000000..7eb7bda5e4 --- /dev/null +++ b/benchtests/fminimumf-inputs @@ -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 ("") -- 2.53.0