[PATCH 1/5] benchtests: Add benchmarks for frexp functions
Osama Abdelkader
osama.abdelkader@gmail.com
Tue Oct 21 22:05:18 GMT 2025
Add benchmark support for frexp, frexpf, and frexpl to measure the
performance improvement of the fast path optimization.
- Created frexp-inputs, frexpf-inputs, frexpl-inputs with random test values
- Added frexp, frexpf, frexpl to bench-math list
- Added CFLAGS to disable builtins for accurate benchmarking
These benchmarks will be used to quantify the performance gains from the
fast path optimization for normal floating-point numbers.
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
---
benchtests/Makefile | 6 ++++++
benchtests/frexp-inputs | 26 ++++++++++++++++++++++++++
benchtests/frexpf-inputs | 26 ++++++++++++++++++++++++++
benchtests/frexpl-inputs | 26 ++++++++++++++++++++++++++
4 files changed, 84 insertions(+)
create mode 100644 benchtests/frexp-inputs
create mode 100644 benchtests/frexpf-inputs
create mode 100644 benchtests/frexpl-inputs
diff --git a/benchtests/Makefile b/benchtests/Makefile
index b4d92b1c04..0d3dfdfc36 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -82,6 +82,9 @@ bench-math := \
fminf \
fmod \
fmodf \
+ frexp \
+ frexpf \
+ frexpl \
hypot \
hypotf \
ilogb \
@@ -347,6 +350,9 @@ CFLAGS-bench-trunc.c += -fno-builtin
CFLAGS-bench-truncf.c += -fno-builtin
CFLAGS-bench-fmod.c += -fno-builtin
CFLAGS-bench-fmodf.c += -fno-builtin
+CFLAGS-bench-frexp.c += -fno-builtin
+CFLAGS-bench-frexpf.c += -fno-builtin
+CFLAGS-bench-frexpl.c += -fno-builtin
CFLAGS-bench-remainder.c += -fno-builtin
CFLAGS-bench-remainderf.c += -fno-builtin
CFLAGS-bench-roundeven.c += -fno-builtin
diff --git a/benchtests/frexp-inputs b/benchtests/frexp-inputs
new file mode 100644
index 0000000000..9ead32f527
--- /dev/null
+++ b/benchtests/frexp-inputs
@@ -0,0 +1,26 @@
+## args: double:<int*>
+## ret: double
+## includes: math.h
+# Random inputs in the range [-20.0,20.0]
+## name: workload-random-m20-p20
+-0x1.7eb52p+1
+-0x1.69a06p+3
+-0x1.a042ccp+3
+0x1.7e9dc8p+3
+-0x1.5d8cap+1
+-0x1.1755b4p+4
+0x1.041908p+4
+0x1.075de4p+4
+0x1.4ab608p+3
+0x1.f4b4a8p+3
+0x1.3ff54p+4
+0x1.fdc038p+3
+0x1.56e1p+3
+0x1.9b90e8p+2
+0x1.1b6d8p+0
+0x1.ebe99p+2
+-0x1.32d9f6p+4
+-0x1.077c24p+3
+0x1.98f028p+3
+-0x1.20faf2p+4
+
diff --git a/benchtests/frexpf-inputs b/benchtests/frexpf-inputs
new file mode 100644
index 0000000000..7af28cf5df
--- /dev/null
+++ b/benchtests/frexpf-inputs
@@ -0,0 +1,26 @@
+## args: float:<int*>
+## ret: float
+## includes: math.h
+# Random inputs in the range [-20.0,20.0]
+## name: workload-random-m20-p20
+-0x1.7eb52p+1
+-0x1.69a06p+3
+-0x1.a042ccp+3
+0x1.7e9dc8p+3
+-0x1.5d8cap+1
+-0x1.1755b4p+4
+0x1.041908p+4
+0x1.075de4p+4
+0x1.4ab608p+3
+0x1.f4b4a8p+3
+0x1.3ff54p+4
+0x1.fdc038p+3
+0x1.56e1p+3
+0x1.9b90e8p+2
+0x1.1b6d8p+0
+0x1.ebe99p+2
+-0x1.32d9f6p+4
+-0x1.077c24p+3
+0x1.98f028p+3
+-0x1.20faf2p+4
+
diff --git a/benchtests/frexpl-inputs b/benchtests/frexpl-inputs
new file mode 100644
index 0000000000..fbb8b61edd
--- /dev/null
+++ b/benchtests/frexpl-inputs
@@ -0,0 +1,26 @@
+## args: long double:<int*>
+## ret: long double
+## includes: math.h
+# Random inputs in the range [-20.0,20.0]
+## name: workload-random-m20-p20
+-0x1.7eb52p+1
+-0x1.69a06p+3
+-0x1.a042ccp+3
+0x1.7e9dc8p+3
+-0x1.5d8cap+1
+-0x1.1755b4p+4
+0x1.041908p+4
+0x1.075de4p+4
+0x1.4ab608p+3
+0x1.f4b4a8p+3
+0x1.3ff54p+4
+0x1.fdc038p+3
+0x1.56e1p+3
+0x1.9b90e8p+2
+0x1.1b6d8p+0
+0x1.ebe99p+2
+-0x1.32d9f6p+4
+-0x1.077c24p+3
+0x1.98f028p+3
+-0x1.20faf2p+4
+
--
2.43.0
More information about the Libc-alpha
mailing list