Skip to content

[libc][math] Optimize nearest integer functions using builtins when available #98376

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jul 15, 2024

Conversation

overmighty
Copy link
Member

No description provided.

@overmighty
Copy link
Member Author

cc @lntue

@llvmbot llvmbot added the libc label Jul 10, 2024
@llvmbot
Copy link
Member

llvmbot commented Jul 10, 2024

@llvm/pr-subscribers-libc

Author: OverMighty (overmighty)

Changes

Patch is 34.78 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/98376.diff

27 Files Affected:

  • (modified) libc/cmake/modules/CheckCompilerFeatures.cmake (+24-2)
  • (modified) libc/cmake/modules/LLVMLibCCompileOptionRules.cmake (+17-3)
  • (modified) libc/cmake/modules/LLVMLibCFlagRules.cmake (+2-1)
  • (added) libc/cmake/modules/compiler_features/check_builtin_ceil_floor_trunc.cpp (+9)
  • (added) libc/cmake/modules/compiler_features/check_builtin_round.cpp (+5)
  • (added) libc/cmake/modules/compiler_features/check_builtin_roundeven.cpp (+5)
  • (modified) libc/config/linux/aarch64/entrypoints.txt (+1)
  • (modified) libc/src/__support/FPUtil/NearestIntegerOperations.h (+21-16)
  • (modified) libc/src/math/generic/CMakeLists.txt (+35)
  • (modified) libc/src/math/generic/ceil.cpp (+7-1)
  • (modified) libc/src/math/generic/ceilf.cpp (+7-1)
  • (modified) libc/src/math/generic/ceilf16.cpp (+9-1)
  • (modified) libc/src/math/generic/floor.cpp (+7-1)
  • (modified) libc/src/math/generic/floorf.cpp (+7-1)
  • (modified) libc/src/math/generic/floorf16.cpp (+9-1)
  • (modified) libc/src/math/generic/round.cpp (+7-1)
  • (modified) libc/src/math/generic/roundeven.cpp (+4)
  • (modified) libc/src/math/generic/roundevenf.cpp (+4)
  • (modified) libc/src/math/generic/roundevenf16.cpp (+6)
  • (modified) libc/src/math/generic/roundf.cpp (+7-1)
  • (modified) libc/src/math/generic/roundf16.cpp (+8-1)
  • (modified) libc/src/math/generic/trunc.cpp (+7-1)
  • (modified) libc/src/math/generic/truncf.cpp (+7-1)
  • (modified) libc/src/math/generic/truncf16.cpp (+9-1)
  • (modified) libc/test/src/math/performance_testing/CMakeLists.txt (+19)
  • (added) libc/test/src/math/performance_testing/NearestIntegerPerf.h (+110)
  • (added) libc/test/src/math/performance_testing/nearest_integer_funcs_perf.cpp (+165)
diff --git a/libc/cmake/modules/CheckCompilerFeatures.cmake b/libc/cmake/modules/CheckCompilerFeatures.cmake
index d84c07b35d2d7..83822892c8096 100644
--- a/libc/cmake/modules/CheckCompilerFeatures.cmake
+++ b/libc/cmake/modules/CheckCompilerFeatures.cmake
@@ -2,7 +2,15 @@
 # Compiler features definition and flags
 # ------------------------------------------------------------------------------
 
-set(ALL_COMPILER_FEATURES "float16" "float128" "fixed_point")
+set(
+  ALL_COMPILER_FEATURES
+    "builtin_ceil_floor_trunc"
+    "builtin_round"
+    "builtin_roundeven"
+    "float16"
+    "float128"
+    "fixed_point"
+)
 
 # Making sure ALL_COMPILER_FEATURES is sorted.
 list(SORT ALL_COMPILER_FEATURES)
@@ -39,11 +47,19 @@ endfunction()
 set(AVAILABLE_COMPILER_FEATURES "")
 
 # Try compile a C file to check if flag is supported.
-set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
 foreach(feature IN LISTS ALL_COMPILER_FEATURES)
+  set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
   set(compile_options ${LIBC_COMPILE_OPTIONS_NATIVE})
   if(${feature} STREQUAL "fixed_point")
     list(APPEND compile_options "-ffixed-point")
+  elseif(${feature} MATCHES "^builtin_")
+    set(compile_options ${LIBC_COMPILE_OPTIONS_DEFAULT})
+    # The compiler might handle calls to rounding builtins by generating calls
+    # to the respective libc math functions, in which case we cannot use these
+    # builtins in our implementations of these functions. We check that this is
+    # not the case by trying to link an executable, since linking would fail due
+    # to unresolved references if calls to libc functions were generated.
+    set(CMAKE_TRY_COMPILE_TARGET_TYPE EXECUTABLE)
   endif()
 
   try_compile(
@@ -60,6 +76,12 @@ foreach(feature IN LISTS ALL_COMPILER_FEATURES)
       set(LIBC_TYPES_HAS_FLOAT128 TRUE)
     elseif(${feature} STREQUAL "fixed_point")
       set(LIBC_COMPILER_HAS_FIXED_POINT TRUE)
+    elseif(${feature} STREQUAL "builtin_ceil_floor_trunc")
+      set(LIBC_COMPILER_HAS_BUILTIN_CEIL_FLOOR_TRUNC TRUE)
+    elseif(${feature} STREQUAL "builtin_round")
+      set(LIBC_COMPILER_HAS_BUILTIN_ROUND TRUE)
+    elseif(${feature} STREQUAL "builtin_roundeven")
+      set(LIBC_COMPILER_HAS_BUILTIN_ROUNDEVEN TRUE)
     endif()
   endif()
 endforeach()
diff --git a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
index c5e7dfe8abd0f..855d69d2a0fc9 100644
--- a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+++ b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
@@ -4,7 +4,7 @@ function(_get_compile_options_from_flags output_var)
   if(LIBC_TARGET_ARCHITECTURE_IS_RISCV64 OR(LIBC_CPU_FEATURES MATCHES "FMA"))
     check_flag(ADD_FMA_FLAG ${FMA_OPT_FLAG} ${ARGN})
   endif()
-  check_flag(ADD_SSE4_2_FLAG ${ROUND_OPT_FLAG} ${ARGN})
+  check_flag(ADD_ROUND_OPT_FLAG ${ROUND_OPT_FLAG} ${ARGN})
   check_flag(ADD_EXPLICIT_SIMD_OPT_FLAG ${EXPLICIT_SIMD_OPT_FLAG} ${ARGN})
 
   if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
@@ -16,8 +16,22 @@ function(_get_compile_options_from_flags output_var)
         list(APPEND compile_options "-D__LIBC_RISCV_USE_FMA")
       endif()
     endif()
-    if(ADD_SSE4_2_FLAG)
-      list(APPEND compile_options "-msse4.2")
+    if(ADD_ROUND_OPT_FLAG)
+      if(LIBC_TARGET_ARCHITECTURE_IS_X86)
+        # ROUND_OPT_FLAG is only enabled if SSE4.2 is detected, not just SSE4.1,
+        # because there was code to check for SSE4.2 already, and few CPUs only
+        # have SSE4.1.
+        list(APPEND compile_options "-msse4.2")
+      endif()
+      if(LIBC_COMPILER_HAS_BUILTIN_CEIL_FLOOR_TRUNC)
+        list(APPEND compile_options "-D__LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC")
+      endif()
+      if(LIBC_COMPILER_HAS_BUILTIN_ROUND)
+        list(APPEND compile_options "-D__LIBC_USE_BUILTIN_ROUND")
+      endif()
+      if(LIBC_COMPILER_HAS_BUILTIN_ROUNDEVEN)
+        list(APPEND compile_options "-D__LIBC_USE_BUILTIN_ROUNDEVEN")
+      endif()
     endif()
     if(ADD_EXPLICIT_SIMD_OPT_FLAG)
       list(APPEND compile_options "-D__LIBC_EXPLICIT_SIMD_OPT")
diff --git a/libc/cmake/modules/LLVMLibCFlagRules.cmake b/libc/cmake/modules/LLVMLibCFlagRules.cmake
index 18e36dfde5cc1..eca7ba8d183e6 100644
--- a/libc/cmake/modules/LLVMLibCFlagRules.cmake
+++ b/libc/cmake/modules/LLVMLibCFlagRules.cmake
@@ -277,6 +277,7 @@ if(NOT(LIBC_TARGET_ARCHITECTURE_IS_X86 AND (LIBC_CPU_FEATURES MATCHES "SSE2")))
 endif()
 
 # Skip ROUND_OPT flag for targets that don't support SSE 4.2.
-if(NOT(LIBC_TARGET_ARCHITECTURE_IS_X86 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2")))
+if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2")) OR
+       LIBC_TARGET_ARCHITECTURE_IS_AARCH64))
   set(SKIP_FLAG_EXPANSION_ROUND_OPT TRUE)
 endif()
diff --git a/libc/cmake/modules/compiler_features/check_builtin_ceil_floor_trunc.cpp b/libc/cmake/modules/compiler_features/check_builtin_ceil_floor_trunc.cpp
new file mode 100644
index 0000000000000..031dd9376f3c1
--- /dev/null
+++ b/libc/cmake/modules/compiler_features/check_builtin_ceil_floor_trunc.cpp
@@ -0,0 +1,9 @@
+float try_builtin_ceilf(float x) { return __builtin_ceilf(x); }
+float try_builtin_floorf(float x) { return __builtin_ceilf(x); }
+float try_builtin_truncf(float x) { return __builtin_truncf(x); }
+
+double try_builtin_ceil(double x) { return __builtin_ceil(x); }
+double try_builtin_floor(double x) { return __builtin_ceil(x); }
+double try_builtin_trunc(double x) { return __builtin_trunc(x); }
+
+int main() {}
diff --git a/libc/cmake/modules/compiler_features/check_builtin_round.cpp b/libc/cmake/modules/compiler_features/check_builtin_round.cpp
new file mode 100644
index 0000000000000..8c3065c2de06a
--- /dev/null
+++ b/libc/cmake/modules/compiler_features/check_builtin_round.cpp
@@ -0,0 +1,5 @@
+float try_builtin_roundf(float x) { return __builtin_roundf(x); }
+
+double try_builtin_round(double x) { return __builtin_round(x); }
+
+int main() {}
diff --git a/libc/cmake/modules/compiler_features/check_builtin_roundeven.cpp b/libc/cmake/modules/compiler_features/check_builtin_roundeven.cpp
new file mode 100644
index 0000000000000..2480abae84c36
--- /dev/null
+++ b/libc/cmake/modules/compiler_features/check_builtin_roundeven.cpp
@@ -0,0 +1,5 @@
+float try_builtin_roundevenf(float x) { return __builtin_roundevenf(x); }
+
+double try_builtin_roundeven(double x) { return __builtin_roundeven(x); }
+
+int main() {}
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 030c3d3a99a02..515c472ef309e 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -489,6 +489,7 @@ set(TARGET_LIBM_ENTRYPOINTS
     libc.src.math.rintl
     libc.src.math.round
     libc.src.math.roundf
+    libc.src.math.roundevenf
     libc.src.math.roundl
     libc.src.math.scalbn
     libc.src.math.scalbnf
diff --git a/libc/src/__support/FPUtil/NearestIntegerOperations.h b/libc/src/__support/FPUtil/NearestIntegerOperations.h
index cff32938229d0..a9a0a97eebb5c 100644
--- a/libc/src/__support/FPUtil/NearestIntegerOperations.h
+++ b/libc/src/__support/FPUtil/NearestIntegerOperations.h
@@ -75,15 +75,17 @@ LIBC_INLINE T ceil(T x) {
   }
 
   uint32_t trim_size = FPBits<T>::FRACTION_LEN - exponent;
-  StorageType trunc_mantissa =
-      static_cast<StorageType>((bits.get_mantissa() >> trim_size) << trim_size);
-  bits.set_mantissa(trunc_mantissa);
-  T trunc_value = bits.get_val();
+  StorageType x_u = bits.uintval();
+  StorageType trunc_u =
+      static_cast<StorageType>((x_u >> trim_size) << trim_size);
 
   // If x is already an integer, return it.
-  if (trunc_value == x)
+  if (trunc_u == x_u)
     return x;
 
+  bits.set_uintval(trunc_u);
+  T trunc_value = bits.get_val();
+
   // If x is negative, the ceil operation is equivalent to the trunc operation.
   if (is_neg)
     return trunc_value;
@@ -130,15 +132,17 @@ LIBC_INLINE T round(T x) {
   uint32_t trim_size = FPBits<T>::FRACTION_LEN - exponent;
   bool half_bit_set =
       bool(bits.get_mantissa() & (StorageType(1) << (trim_size - 1)));
-  StorageType trunc_mantissa =
-      static_cast<StorageType>((bits.get_mantissa() >> trim_size) << trim_size);
-  bits.set_mantissa(trunc_mantissa);
-  T trunc_value = bits.get_val();
+  StorageType x_u = bits.uintval();
+  StorageType trunc_u =
+      static_cast<StorageType>((x_u >> trim_size) << trim_size);
 
   // If x is already an integer, return it.
-  if (trunc_value == x)
+  if (trunc_u == x_u)
     return x;
 
+  bits.set_uintval(trunc_u);
+  T trunc_value = bits.get_val();
+
   if (!half_bit_set) {
     // Franctional part is less than 0.5 so round value is the
     // same as the trunc value.
@@ -188,16 +192,17 @@ round_using_specific_rounding_mode(T x, int rnd) {
   }
 
   uint32_t trim_size = FPBits<T>::FRACTION_LEN - exponent;
-  FPBits<T> new_bits = bits;
-  StorageType trunc_mantissa =
-      static_cast<StorageType>((bits.get_mantissa() >> trim_size) << trim_size);
-  new_bits.set_mantissa(trunc_mantissa);
-  T trunc_value = new_bits.get_val();
+  StorageType x_u = bits.uintval();
+  StorageType trunc_u =
+      static_cast<StorageType>((x_u >> trim_size) << trim_size);
 
   // If x is already an integer, return it.
-  if (trunc_value == x)
+  if (trunc_u == x_u)
     return x;
 
+  FPBits<T> new_bits(trunc_u);
+  T trunc_value = new_bits.get_val();
+
   StorageType trim_value =
       bits.get_mantissa() &
       static_cast<StorageType>(((StorageType(1) << trim_size) - 1));
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 5e920307d39de..915fc076826f9 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -70,6 +70,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -82,6 +84,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -107,6 +111,9 @@ add_entrypoint_object(
   DEPENDS
     libc.src.__support.macros.properties.types
     libc.src.__support.FPUtil.nearest_integer_operations
+    libc.src.__support.macros.properties.architectures
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -455,6 +462,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -467,6 +476,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -492,6 +503,9 @@ add_entrypoint_object(
   DEPENDS
     libc.src.__support.macros.properties.types
     libc.src.__support.FPUtil.nearest_integer_operations
+    libc.src.__support.macros.properties.architectures
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -517,6 +531,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -529,6 +545,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -554,6 +572,9 @@ add_entrypoint_object(
   DEPENDS
     libc.src.__support.macros.properties.types
     libc.src.__support.FPUtil.nearest_integer_operations
+    libc.src.__support.macros.properties.architectures
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -579,6 +600,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -591,6 +614,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -616,6 +641,9 @@ add_entrypoint_object(
   DEPENDS
     libc.src.__support.macros.properties.types
     libc.src.__support.FPUtil.nearest_integer_operations
+    libc.src.__support.macros.properties.architectures
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -641,6 +669,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -653,6 +683,8 @@ add_entrypoint_object(
     -O3
   DEPENDS
     libc.src.__support.FPUtil.nearest_integer_operations
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
@@ -678,6 +710,9 @@ add_entrypoint_object(
   DEPENDS
     libc.src.__support.macros.properties.types
     libc.src.__support.FPUtil.nearest_integer_operations
+    libc.src.__support.macros.properties.architectures
+  FLAGS
+    ROUND_OPT
 )
 
 add_entrypoint_object(
diff --git a/libc/src/math/generic/ceil.cpp b/libc/src/math/generic/ceil.cpp
index efd0f246a9b90..63da803033e22 100644
--- a/libc/src/math/generic/ceil.cpp
+++ b/libc/src/math/generic/ceil.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(double, ceil, (double x)) { return fputil::ceil(x); }
+LLVM_LIBC_FUNCTION(double, ceil, (double x)) {
+#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
+  return __builtin_ceil(x);
+#else
+  return fputil::ceil(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/ceilf.cpp b/libc/src/math/generic/ceilf.cpp
index d49b34242da4f..51ef68f1dd871 100644
--- a/libc/src/math/generic/ceilf.cpp
+++ b/libc/src/math/generic/ceilf.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float, ceilf, (float x)) { return fputil::ceil(x); }
+LLVM_LIBC_FUNCTION(float, ceilf, (float x)) {
+#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
+  return __builtin_ceilf(x);
+#else
+  return fputil::ceil(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/ceilf16.cpp b/libc/src/math/generic/ceilf16.cpp
index 205d7428f66e6..ee584c25a4ae9 100644
--- a/libc/src/math/generic/ceilf16.cpp
+++ b/libc/src/math/generic/ceilf16.cpp
@@ -9,9 +9,17 @@
 #include "src/math/ceilf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/properties/architectures.h"
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float16, ceilf16, (float16 x)) { return fputil::ceil(x); }
+LLVM_LIBC_FUNCTION(float16, ceilf16, (float16 x)) {
+#if defined(__LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC) &&                            \
+    defined(LIBC_TARGET_ARCH_IS_AARCH64)
+  return static_cast<float16>(__builtin_ceilf(x));
+#else
+  return fputil::ceil(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/floor.cpp b/libc/src/math/generic/floor.cpp
index 60386f0c9cf81..bb58ca6a35402 100644
--- a/libc/src/math/generic/floor.cpp
+++ b/libc/src/math/generic/floor.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(double, floor, (double x)) { return fputil::floor(x); }
+LLVM_LIBC_FUNCTION(double, floor, (double x)) {
+#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
+  return __builtin_floor(x);
+#else
+  return fputil::floor(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/floorf.cpp b/libc/src/math/generic/floorf.cpp
index 85666688685dc..459f338d897be 100644
--- a/libc/src/math/generic/floorf.cpp
+++ b/libc/src/math/generic/floorf.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float, floorf, (float x)) { return fputil::floor(x); }
+LLVM_LIBC_FUNCTION(float, floorf, (float x)) {
+#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
+  return __builtin_floorf(x);
+#else
+  return fputil::floor(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/floorf16.cpp b/libc/src/math/generic/floorf16.cpp
index db0b326c0e5f6..6d8c497946c84 100644
--- a/libc/src/math/generic/floorf16.cpp
+++ b/libc/src/math/generic/floorf16.cpp
@@ -9,9 +9,17 @@
 #include "src/math/floorf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/properties/architectures.h"
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float16, floorf16, (float16 x)) { return fputil::floor(x); }
+LLVM_LIBC_FUNCTION(float16, floorf16, (float16 x)) {
+#if defined(__LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC) &&                            \
+    defined(LIBC_TARGET_ARCH_IS_AARCH64)
+  return static_cast<float16>(__builtin_floorf(x));
+#else
+  return fputil::floor(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/round.cpp b/libc/src/math/generic/round.cpp
index ca8f19f35f7fe..d873524ad9f42 100644
--- a/libc/src/math/generic/round.cpp
+++ b/libc/src/math/generic/round.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(double, round, (double x)) { return fputil::round(x); }
+LLVM_LIBC_FUNCTION(double, round, (double x)) {
+#ifdef __LIBC_USE_BUILTIN_ROUND
+  return __builtin_round(x);
+#else
+  return fputil::round(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundeven.cpp b/libc/src/math/generic/roundeven.cpp
index 5f2adf9b5fce6..76409d526e208 100644
--- a/libc/src/math/generic/roundeven.cpp
+++ b/libc/src/math/generic/roundeven.cpp
@@ -13,7 +13,11 @@
 namespace LIBC_NAMESPACE {
 
 LLVM_LIBC_FUNCTION(double, roundeven, (double x)) {
+#ifdef __LIBC_USE_BUILTIN_ROUNDEVEN
+  return __builtin_roundeven(x);
+#else
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
+#endif
 }
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundevenf.cpp b/libc/src/math/generic/roundevenf.cpp
index 353bec74ecf02..22538272bedbd 100644
--- a/libc/src/math/generic/roundevenf.cpp
+++ b/libc/src/math/generic/roundevenf.cpp
@@ -13,7 +13,11 @@
 namespace LIBC_NAMESPACE {
 
 LLVM_LIBC_FUNCTION(float, roundevenf, (float x)) {
+#ifdef __LIBC_USE_BUILTIN_ROUNDEVEN
+  return __builtin_roundevenf(x);
+#else
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
+#endif
 }
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundevenf16.cpp b/libc/src/math/generic/roundevenf16.cpp
index 9ecf79ce6f6c2..90c75a10d3ddb 100644
--- a/libc/src/math/generic/roundevenf16.cpp
+++ b/libc/src/math/generic/roundevenf16.cpp
@@ -9,11 +9,17 @@
 #include "src/math/roundevenf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/properties/architectures.h"
 
 namespace LIBC_NAMESPACE {
 
 LLVM_LIBC_FUNCTION(float16, roundevenf16, (float16 x)) {
+#if defined(__LIBC_USE_BUILTIN_ROUNDEVEN) &&                                   \
+    defined(LIBC_TARGET_ARCH_IS_AARCH64)
+  return static_cast<float16>(__builtin_roundevenf(x));
+#else
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
+#endif
 }
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundf.cpp b/libc/src/math/generic/roundf.cpp
index 9627390ea8b8d..8b3add7cb9e2d 100644
--- a/libc/src/math/generic/roundf.cpp
+++ b/libc/src/math/generic/roundf.cpp
@@ -12,6 +12,12 @@
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float, roundf, (float x)) { return fputil::round(x); }
+LLVM_LIBC_FUNCTION(float, roundf, (float x)) {
+#ifdef __LIBC_USE_BUILTIN_ROUND
+  return __builtin_roundf(x);
+#else
+  return fputil::round(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundf16.cpp b/libc/src/math/generic/roundf16.cpp
index 75a255d7798d5..fca0194ec5dbb 100644
--- a/libc/src/math/generic/roundf16.cpp
+++ b/libc/src/math/generic/roundf16.cpp
@@ -9,9 +9,16 @@
 #include "src/math/roundf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/properties/architectures.h"
 
 namespace LIBC_NAMESPACE {
 
-LLVM_LIBC_FUNCTION(float16, roundf16, (float16 x)) { return fputil::round(x); }
+LLVM_LIBC_FUNCTION(float16, roundf16, (float16 x)) {
+#if defined(__LIBC_USE_BUILTIN_ROUND) && defined(LIBC_TARGET_ARCH_IS_AARCH64)
+  return static_cast<float16>(__builtin_roundf(x));
+#else
+  return fputil::round(x);
+#endif
+}
 
 } // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/trunc.cpp b/libc/src/math/generic/trunc.cpp
index d171ab1f092fd..5761565646c36 100644
--- a/libc/src/math/generic/trunc.cpp
+++ b/libc/src/math/generic/trunc.cpp
@@ -12,6 +12,12 @@
 
 namespace L...
[truncated]

Comment on lines +280 to +281
if(NOT((LIBC_TARGET_ARCHITECTURE_IS_X86 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2")) OR
LIBC_TARGET_ARCHITECTURE_IS_AARCH64))
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice if we had a CMake formatter. I copied the style from the lines above, but the OR line is longer than 80 chars (just like above).

Comment on lines 112 to +114
libc.src.__support.macros.properties.types
libc.src.__support.FPUtil.nearest_integer_operations
libc.src.__support.macros.properties.architectures
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are CMakeLists.txt files where libc.src.__support.macros* appear before libc.src.__support.FPUtil.* and files where it appears after. I assumed that it was because the header's dependencies are listed first and then the implementation file's, not because the ordering is random.

Comment on lines 17 to 19
#if defined(__LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC) && \
defined(LIBC_TARGET_ARCH_IS_AARCH64)
Copy link
Member Author

@overmighty overmighty Jul 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably would be faster than the generic implementation on x86-64 with AVX-512 FP16, but I don't have a CPU that supports it. It could also be interesting to try on a Zen 2 or later CPU, because F16C instructions have lower latencies on those: https://uops.info/table.html?search=vcvtph2ps%20(xmm%2C%20xmm)&cb_lat=on&cb_tp=on&cb_uops=on&cb_ports=on&cb_ADLP=on&cb_ADLE=on&cb_ZENp=on&cb_ZEN2=on&cb_measurements=on&cb_doc=on&cb_others=on.

On my i7-13700H however, using F16C instructions is slower than using the generic functions.

Edit: builtins are actually faster but only with GCC and -march=native.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant: #98630.

@overmighty
Copy link
Member Author

#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
return __builtin_ceilf(x);
#else
return fputil::ceil(x);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we not just make fputil::ceil() use the builtin? That way internal usage gets the more optimal version.

Copy link
Member Author

@overmighty overmighty Jul 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I talked about this with Tue yesterday. We were initially talking about doing this in FPUtil, but yesterday he suggested having the builtin/generic switch in the entrypoints directly because fputil::{ceil,floor,round,trunc} are only used in the respective entrypoints (actually fputill::trunc is used in unit tests for modf, but nowhere in libc/src/).

@@ -12,6 +12,12 @@

namespace LIBC_NAMESPACE {

LLVM_LIBC_FUNCTION(float, ceilf, (float x)) { return fputil::ceil(x); }
LLVM_LIBC_FUNCTION(float, ceilf, (float x)) {
#ifdef __LIBC_USE_BUILTIN_CEIL_FLOOR_TRUNC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We shouldn't use double underscores for the name.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libc/cmake/modules/LLVMLibCCompileOptionRules.cmake defines __LIBC_RISCV_USE_FMA and __LIBC_EXPLICIT_SIMD_OPT. I guessed that a macro defined through compile options should have __.

@overmighty overmighty marked this pull request as draft July 11, 2024 12:39
@overmighty overmighty force-pushed the libc-math-rounding-builtins branch from 34ffd03 to 11e4992 Compare July 11, 2024 14:32
@overmighty overmighty changed the title [libc][math] Implement nearest integer functions using builtins when available [libc][math] Optimize nearest integer functions using builtins when available Jul 11, 2024
@overmighty
Copy link
Member Author

overmighty commented Jul 11, 2024

Based on #98483.

@overmighty overmighty force-pushed the libc-math-rounding-builtins branch from 11e4992 to 50f1237 Compare July 11, 2024 15:42
@overmighty overmighty marked this pull request as ready for review July 11, 2024 15:42
Comment on lines 1 to 2
float try_builtin_ceilf(float x) { return __builtin_ceilf(x); }
float try_builtin_floorf(float x) { return __builtin_ceilf(x); }
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, try_builtin_floorf checks for __builtin_ceilf.

@overmighty
Copy link
Member Author

overmighty commented Jul 12, 2024

Before:

  • Intel Core i7-13700H, Clang 18
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 53636503 ns 
           Average runtime : 1.88947 ns/op 
           Ops per second  : 529248523 op/s 
      -- Other function --
           Total time      : 30645893 ns 
           Average runtime : 1.07957 ns/op 
           Ops per second  : 926291819 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.7502 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 232735194 ns
      Average runtime : 1.43151 ns/op
      Ops per second : 698563535 op/s
      -- Other function --
      Total time : 180566834 ns
      Average runtime : 1.11063 ns/op
      Ops per second : 900388606 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.28891

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 161049230 ns
      Average runtime : 1.17748 ns/op
      Ops per second : 849267767 op/s
      -- Other function --
      Total time : 151433364 ns
      Average runtime : 1.10718 ns/op
      Ops per second : 903195414 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.0635

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1354045399 ns
      Average runtime : 2.01769 ns/op
      Ops per second : 495617473 op/s
      -- Other function --
      Total time : 708319821 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947437217 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.91163

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 451410362 ns
      Average runtime : 1.34531 ns/op
      Ops per second : 743324274 op/s
      -- Other function --
      Total time : 354137308 ns
      Average runtime : 1.05541 ns/op
      Ops per second : 947497686 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.27468

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 49711028 ns 
           Average runtime : 1.75119 ns/op 
           Ops per second  : 571041097 op/s 
      -- Other function --
           Total time      : 30641847 ns 
           Average runtime : 1.07943 ns/op 
           Ops per second  : 926414129 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.62232 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 225023001 ns
      Average runtime : 1.38407 ns/op
      Ops per second : 722505340 op/s
      -- Other function --
      Total time : 180495053 ns
      Average runtime : 1.11019 ns/op
      Ops per second : 900746681 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.2467

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 191527883 ns
      Average runtime : 1.40032 ns/op
      Ops per second : 714120147 op/s
      -- Other function --
      Total time : 152681872 ns
      Average runtime : 1.11631 ns/op
      Ops per second : 895809818 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.25442

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1171666552 ns
      Average runtime : 1.74592 ns/op
      Ops per second : 572764118 op/s
      -- Other function --
      Total time : 708288463 ns
      Average runtime : 1.05543 ns/op
      Ops per second : 947479162 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.65422

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442728229 ns
      Average runtime : 1.31943 ns/op
      Ops per second : 757901254 op/s
      -- Other function --
      Total time : 354117851 ns
      Average runtime : 1.05535 ns/op
      Ops per second : 947549746 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.25023

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 59436084 ns 
           Average runtime : 2.09378 ns/op 
           Ops per second  : 477606162 op/s 
      -- Other function --
           Total time      : 57018354 ns 
           Average runtime : 2.00861 ns/op 
           Ops per second  : 497857935 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.0424 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 269784466 ns
      Average runtime : 1.65939 ns/op
      Ops per second : 602630397 op/s
      -- Other function --
      Total time : 265864119 ns
      Average runtime : 1.63528 ns/op
      Ops per second : 611516592 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01475

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190308558 ns
      Average runtime : 1.39141 ns/op
      Ops per second : 718695582 op/s
      -- Other function --
      Total time : 291667219 ns
      Average runtime : 2.13248 ns/op
      Ops per second : 468938266 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.652485

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1671590638 ns
      Average runtime : 2.49086 ns/op
      Ops per second : 401467048 op/s
      -- Other function --
      Total time : 1086660773 ns
      Average runtime : 1.61925 ns/op
      Ops per second : 617569508 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.53828

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 531237612 ns
      Average runtime : 1.58321 ns/op
      Ops per second : 631627491 op/s
      -- Other function --
      Total time : 531259880 ns
      Average runtime : 1.58328 ns/op
      Ops per second : 631601016 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999958

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 58439591 ns 
           Average runtime : 2.05867 ns/op 
           Ops per second  : 485750148 op/s 
      -- Other function --
           Total time      : 30640185 ns 
           Average runtime : 1.07937 ns/op 
           Ops per second  : 926464380 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.90729 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 313724078 ns
      Average runtime : 1.92966 ns/op
      Ops per second : 518227102 op/s
      -- Other function --
      Total time : 183187724 ns
      Average runtime : 1.12675 ns/op
      Ops per second : 887506632 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.71258

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 192534764 ns
      Average runtime : 1.40769 ns/op
      Ops per second : 710385580 op/s
      -- Other function --
      Total time : 155858698 ns
      Average runtime : 1.13954 ns/op
      Ops per second : 877550767 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23532

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1830713936 ns
      Average runtime : 2.72798 ns/op
      Ops per second : 366572049 op/s
      -- Other function --
      Total time : 711981086 ns
      Average runtime : 1.06093 ns/op
      Ops per second : 942565151 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.5713

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 672872872 ns
      Average runtime : 2.00532 ns/op
      Ops per second : 498674109 op/s
      -- Other function --
      Total time : 355986998 ns
      Average runtime : 1.06092 ns/op
      Ops per second : 942574537 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.89016

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 61738269 ns 
           Average runtime : 2.17488 ns/op 
           Ops per second  : 459796499 op/s 
      -- Other function --
           Total time      : 30640940 ns 
           Average runtime : 1.0794 ns/op 
           Ops per second  : 926441551 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.01489 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 224505491 ns
      Average runtime : 1.38089 ns/op
      Ops per second : 724170795 op/s
      -- Other function --
      Total time : 180454067 ns
      Average runtime : 1.10994 ns/op
      Ops per second : 900951265 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.24411

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 191227882 ns
      Average runtime : 1.39813 ns/op
      Ops per second : 715240468 op/s
      -- Other function --
      Total time : 151463109 ns
      Average runtime : 1.1074 ns/op
      Ops per second : 903018041 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.26254

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1094377104 ns
      Average runtime : 1.63075 ns/op
      Ops per second : 613215095 op/s
      -- Other function --
      Total time : 708317950 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947439719 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.54504

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442694061 ns
      Average runtime : 1.31933 ns/op
      Ops per second : 757959750 op/s
      -- Other function --
      Total time : 354184072 ns
      Average runtime : 1.05555 ns/op
      Ops per second : 947372585 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.2499

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 82857631 ns 
           Average runtime : 2.91886 ns/op 
           Ops per second  : 342600188 op/s 
      -- Other function --
           Total time      : 30650912 ns 
           Average runtime : 1.07976 ns/op 
           Ops per second  : 926140142 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.70327 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 434078516 ns
      Average runtime : 2.66994 ns/op
      Ops per second : 374541273 op/s
      -- Other function --
      Total time : 180484649 ns
      Average runtime : 1.11013 ns/op
      Ops per second : 900798604 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.40508

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 366643042 ns
      Average runtime : 2.68066 ns/op
      Ops per second : 373043817 op/s
      -- Other function --
      Total time : 151425285 ns
      Average runtime : 1.10713 ns/op
      Ops per second : 903243602 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.42129

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1988935428 ns
      Average runtime : 2.96375 ns/op
      Ops per second : 337410933 op/s
      -- Other function --
      Total time : 708360051 ns
      Average runtime : 1.05554 ns/op
      Ops per second : 947383409 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.80781

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 878409586 ns
      Average runtime : 2.61787 ns/op
      Ops per second : 381990685 op/s
      -- Other function --
      Total time : 354166874 ns
      Average runtime : 1.0555 ns/op
      Ops per second : 947418588 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.48022

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 75583147 ns 
           Average runtime : 2.66259 ns/op 
           Ops per second  : 375573671 op/s 
      -- Other function --
           Total time      : 30650961 ns 
           Average runtime : 1.07975 ns/op 
           Ops per second  : 926138661 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.46593 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 314262848 ns
      Average runtime : 1.93296 ns/op
      Ops per second : 517338657 op/s
      -- Other function --
      Total time : 180499392 ns
      Average runtime : 1.11021 ns/op
      Ops per second : 900725028 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.74107

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 298496076 ns
      Average runtime : 2.1824 ns/op
      Ops per second : 458210110 op/s
      -- Other function --
      Total time : 151460316 ns
      Average runtime : 1.10737 ns/op
      Ops per second : 903034693 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.97078

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1771157565 ns
      Average runtime : 2.63923 ns/op
      Ops per second : 378898282 op/s
      -- Other function --
      Total time : 708348270 ns
      Average runtime : 1.05552 ns/op
      Ops per second : 947399165 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.5004

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 621864475 ns
      Average runtime : 1.8533 ns/op
      Ops per second : 539577823 op/s
      -- Other function --
      Total time : 354147578 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947470209 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.75594

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 74427755 ns 
           Average runtime : 2.62189 ns/op 
           Ops per second  : 381403953 op/s 
      -- Other function --
           Total time      : 30651351 ns 
           Average runtime : 1.07976 ns/op 
           Ops per second  : 926126877 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.4282 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 340427690 ns
      Average runtime : 2.0939 ns/op
      Ops per second : 477576662 op/s
      -- Other function --
      Total time : 180434578 ns
      Average runtime : 1.10981 ns/op
      Ops per second : 901048578 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.8867

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 330171689 ns
      Average runtime : 2.41399 ns/op
      Ops per second : 414250902 op/s
      -- Other function --
      Total time : 151425291 ns
      Average runtime : 1.10712 ns/op
      Ops per second : 903243567 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.18042

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1716158107 ns
      Average runtime : 2.55727 ns/op
      Ops per second : 391041220 op/s
      -- Other function --
      Total time : 708279779 ns
      Average runtime : 1.05541 ns/op
      Ops per second : 947490779 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.42299

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 686007544 ns
      Average runtime : 2.04446 ns/op
      Ops per second : 489126224 op/s
      -- Other function --
      Total time : 354147101 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947471485 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.93706

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 85305124 ns 
           Average runtime : 3.00507 ns/op 
           Ops per second  : 332770631 op/s 
      -- Other function --
           Total time      : 30650891 ns 
           Average runtime : 1.07975 ns/op 
           Ops per second  : 926140776 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.78312 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 444641584 ns
      Average runtime : 2.7349 ns/op
      Ops per second : 365643533 op/s
      -- Other function --
      Total time : 180429252 ns
      Average runtime : 1.10979 ns/op
      Ops per second : 901075175 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.46435

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 364142371 ns
      Average runtime : 2.66237 ns/op
      Ops per second : 375605617 op/s
      -- Other function --
      Total time : 151686576 ns
      Average runtime : 1.10903 ns/op
      Ops per second : 901687701 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.40062

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2569691782 ns
      Average runtime : 3.82914 ns/op
      Ops per second : 261155273 op/s
      -- Other function --
      Total time : 708338020 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947412874 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.62778

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 913803094 ns
      Average runtime : 2.72335 ns/op
      Ops per second : 367195386 op/s
      -- Other function --
      Total time : 354153272 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947454976 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.58025

  • Intel Core i7-13700H, Clang 18, -march=native
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 69779375 ns 
           Average runtime : 2.45814 ns/op 
           Ops per second  : 406811324 op/s 
      -- Other function --
           Total time      : 30642591 ns 
           Average runtime : 1.07946 ns/op 
           Ops per second  : 926391635 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.2772 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 267391893 ns
      Average runtime : 1.64468 ns/op
      Ops per second : 608022622 op/s
      -- Other function --
      Total time : 180496765 ns
      Average runtime : 1.1102 ns/op
      Ops per second : 900738137 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48142

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 191424169 ns
      Average runtime : 1.39957 ns/op
      Ops per second : 714507058 op/s
      -- Other function --
      Total time : 151502072 ns
      Average runtime : 1.10768 ns/op
      Ops per second : 902785804 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.26351

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1421998561 ns
      Average runtime : 2.11894 ns/op
      Ops per second : 471933360 op/s
      -- Other function --
      Total time : 708348436 ns
      Average runtime : 1.05552 ns/op
      Ops per second : 947398943 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00748

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 531950456 ns
      Average runtime : 1.58534 ns/op
      Ops per second : 630781074 op/s
      -- Other function --
      Total time : 354159320 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947438796 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50201

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 42139289 ns 
           Average runtime : 1.48446 ns/op 
           Ops per second  : 673647815 op/s 
      -- Other function --
           Total time      : 30650963 ns 
           Average runtime : 1.07975 ns/op 
           Ops per second  : 926138601 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.37481 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 265953773 ns
      Average runtime : 1.63583 ns/op
      Ops per second : 611310447 op/s
      -- Other function --
      Total time : 180476294 ns
      Average runtime : 1.11007 ns/op
      Ops per second : 900840306 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.47362

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 230253556 ns
      Average runtime : 1.68346 ns/op
      Ops per second : 594014365 op/s
      -- Other function --
      Total time : 151592316 ns
      Average runtime : 1.10834 ns/op
      Ops per second : 902248369 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.5189

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 992149542 ns
      Average runtime : 1.47842 ns/op
      Ops per second : 676398598 op/s
      -- Other function --
      Total time : 708288533 ns
      Average runtime : 1.05543 ns/op
      Ops per second : 947479069 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40077

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 532884262 ns
      Average runtime : 1.58812 ns/op
      Ops per second : 629675717 op/s
      -- Other function --
      Total time : 354169262 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947412200 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.5046

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 57187834 ns 
           Average runtime : 2.01458 ns/op 
           Ops per second  : 496382499 op/s 
      -- Other function --
           Total time      : 56909197 ns 
           Average runtime : 2.00476 ns/op 
           Ops per second  : 498812872 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.0049 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 235044921 ns
      Average runtime : 1.44572 ns/op
      Ops per second : 691698928 op/s
      -- Other function --
      Total time : 265844459 ns
      Average runtime : 1.63516 ns/op
      Ops per second : 611561815 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.884145

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190345111 ns
      Average runtime : 1.39168 ns/op
      Ops per second : 718557567 op/s
      -- Other function --
      Total time : 299916633 ns
      Average runtime : 2.19279 ns/op
      Ops per second : 456039795 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.63466

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1433489602 ns
      Average runtime : 2.13607 ns/op
      Ops per second : 468150281 op/s
      -- Other function --
      Total time : 1086711596 ns
      Average runtime : 1.61933 ns/op
      Ops per second : 617540626 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.31911

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 450673408 ns
      Average runtime : 1.34311 ns/op
      Ops per second : 744539779 op/s
      -- Other function --
      Total time : 531228673 ns
      Average runtime : 1.58319 ns/op
      Ops per second : 631638119 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.84836

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 65079704 ns 
           Average runtime : 2.29259 ns/op 
           Ops per second  : 436188830 op/s 
      -- Other function --
           Total time      : 30745800 ns 
           Average runtime : 1.08309 ns/op 
           Ops per second  : 923281879 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.1167 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 312294703 ns
      Average runtime : 1.92086 ns/op
      Ops per second : 520599031 op/s
      -- Other function --
      Total time : 182959902 ns
      Average runtime : 1.12535 ns/op
      Ops per second : 888611757 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.7069

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 193120752 ns
      Average runtime : 1.41197 ns/op
      Ops per second : 708230050 op/s
      -- Other function --
      Total time : 156098092 ns
      Average runtime : 1.14129 ns/op
      Ops per second : 876204944 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23718

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1556966344 ns
      Average runtime : 2.32006 ns/op
      Ops per second : 431023164 op/s
      -- Other function --
      Total time : 711960262 ns
      Average runtime : 1.0609 ns/op
      Ops per second : 942592720 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.18687

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 597157237 ns
      Average runtime : 1.77967 ns/op
      Ops per second : 561902727 op/s
      -- Other function --
      Total time : 356647149 ns
      Average runtime : 1.06289 ns/op
      Ops per second : 940829839 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.67436

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 58769790 ns 
           Average runtime : 2.0703 ns/op 
           Ops per second  : 483020953 op/s 
      -- Other function --
           Total time      : 30640343 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926459602 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.91805 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 224536480 ns
      Average runtime : 1.38108 ns/op
      Ops per second : 724070850 op/s
      -- Other function --
      Total time : 180441049 ns
      Average runtime : 1.10986 ns/op
      Ops per second : 901016264 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.24438

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 192440006 ns
      Average runtime : 1.40699 ns/op
      Ops per second : 710735375 op/s
      -- Other function --
      Total time : 151657913 ns
      Average runtime : 1.10882 ns/op
      Ops per second : 901858118 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.26891

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1062722623 ns
      Average runtime : 1.58358 ns/op
      Ops per second : 631480449 op/s
      -- Other function --
      Total time : 713592316 ns
      Average runtime : 1.06334 ns/op
      Ops per second : 940436920 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48926

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442691619 ns
      Average runtime : 1.31932 ns/op
      Ops per second : 757963931 op/s
      -- Other function --
      Total time : 357093656 ns
      Average runtime : 1.06422 ns/op
      Ops per second : 939653433 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23971

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 95056183 ns 
           Average runtime : 3.34858 ns/op 
           Ops per second  : 298634335 op/s 
      -- Other function --
           Total time      : 30639671 ns 
           Average runtime : 1.07936 ns/op 
           Ops per second  : 926479922 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.10239 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 447998938 ns
      Average runtime : 2.75556 ns/op
      Ops per second : 362903360 op/s
      -- Other function --
      Total time : 180538379 ns
      Average runtime : 1.11046 ns/op
      Ops per second : 900530518 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.48147

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 383417134 ns
      Average runtime : 2.8033 ns/op
      Ops per second : 356723546 op/s
      -- Other function --
      Total time : 151486130 ns
      Average runtime : 1.10757 ns/op
      Ops per second : 902880811 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.53104

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2173178314 ns
      Average runtime : 3.23829 ns/op
      Ops per second : 308805106 op/s
      -- Other function --
      Total time : 708326996 ns
      Average runtime : 1.05549 ns/op
      Ops per second : 947427619 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.06805

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 903325066 ns
      Average runtime : 2.69212 ns/op
      Ops per second : 371454632 op/s
      -- Other function --
      Total time : 354192487 ns
      Average runtime : 1.05558 ns/op
      Ops per second : 947350077 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.55038

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 90558714 ns 
           Average runtime : 3.19014 ns/op 
           Ops per second  : 313465582 op/s 
      -- Other function --
           Total time      : 30640540 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926453646 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.95551 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 312698195 ns
      Average runtime : 1.92334 ns/op
      Ops per second : 519927273 op/s
      -- Other function --
      Total time : 180434317 ns
      Average runtime : 1.10981 ns/op
      Ops per second : 901049881 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.73303

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 300479730 ns
      Average runtime : 2.1969 ns/op
      Ops per second : 455185180 op/s
      -- Other function --
      Total time : 151416947 ns
      Average runtime : 1.10706 ns/op
      Ops per second : 903293341 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.98445

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2124909036 ns
      Average runtime : 3.16636 ns/op
      Ops per second : 315819900 op/s
      -- Other function --
      Total time : 708330705 ns
      Average runtime : 1.05549 ns/op
      Ops per second : 947422659 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.99988

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 620128609 ns
      Average runtime : 1.84812 ns/op
      Ops per second : 541088211 op/s
      -- Other function --
      Total time : 354202047 ns
      Average runtime : 1.0556 ns/op
      Ops per second : 947324508 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.75077

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 72163072 ns 
           Average runtime : 2.54211 ns/op 
           Ops per second  : 393373497 op/s 
      -- Other function --
           Total time      : 30641370 ns 
           Average runtime : 1.07941 ns/op 
           Ops per second  : 926428550 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.35508 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 367159305 ns
      Average runtime : 2.25832 ns/op
      Ops per second : 442805936 op/s
      -- Other function --
      Total time : 180438714 ns
      Average runtime : 1.10984 ns/op
      Ops per second : 901027924 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.03481

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 330116998 ns
      Average runtime : 2.41359 ns/op
      Ops per second : 414319531 op/s
      -- Other function --
      Total time : 151446035 ns
      Average runtime : 1.10727 ns/op
      Ops per second : 903119847 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.17976

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1701982364 ns
      Average runtime : 2.53615 ns/op
      Ops per second : 394298186 op/s
      -- Other function --
      Total time : 708322806 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947433224 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.40283

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 754187831 ns
      Average runtime : 2.24765 ns/op
      Ops per second : 444908106 op/s
      -- Other function --
      Total time : 354178458 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947387601 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.1294

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 76606563 ns 
           Average runtime : 2.69865 ns/op 
           Ops per second  : 370556240 op/s 
      -- Other function --
           Total time      : 30641358 ns 
           Average runtime : 1.07941 ns/op 
           Ops per second  : 926428913 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.5001 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 437268811 ns
      Average runtime : 2.68956 ns/op
      Ops per second : 371808635 op/s
      -- Other function --
      Total time : 180450044 ns
      Average runtime : 1.10991 ns/op
      Ops per second : 900971351 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.42321

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 367363453 ns
      Average runtime : 2.68592 ns/op
      Ops per second : 372312267 op/s
      -- Other function --
      Total time : 151415763 ns
      Average runtime : 1.10705 ns/op
      Ops per second : 903300404 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.42619

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2206155232 ns
      Average runtime : 3.28743 ns/op
      Ops per second : 304189184 op/s
      -- Other function --
      Total time : 708328858 ns
      Average runtime : 1.05549 ns/op
      Ops per second : 947425129 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.11459

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 904767310 ns
      Average runtime : 2.69642 ns/op
      Ops per second : 370862514 op/s
      -- Other function --
      Total time : 354133604 ns
      Average runtime : 1.0554 ns/op
      Ops per second : 947507596 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.55488

  • Intel Core i7-13700H, GCC 14
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 73291118 ns 
           Average runtime : 2.58185 ns/op 
           Ops per second  : 387318965 op/s 
      -- Other function --
           Total time      : 30980434 ns 
           Average runtime : 1.09136 ns/op 
           Ops per second  : 916289294 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.36572 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 265599418 ns
      Average runtime : 1.63365 ns/op
      Ops per second : 612126040 op/s
      -- Other function --
      Total time : 180984560 ns
      Average runtime : 1.1132 ns/op
      Ops per second : 898310441 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46753

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 226359330 ns
      Average runtime : 1.65499 ns/op
      Ops per second : 604233631 op/s
      -- Other function --
      Total time : 156695961 ns
      Average runtime : 1.14566 ns/op
      Ops per second : 872861809 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44458

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1352241454 ns
      Average runtime : 2.015 ns/op
      Ops per second : 496278647 op/s
      -- Other function --
      Total time : 708315519 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947442971 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.90909

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 531613302 ns
      Average runtime : 1.58433 ns/op
      Ops per second : 631181121 op/s
      -- Other function --
      Total time : 443272516 ns
      Average runtime : 1.32106 ns/op
      Ops per second : 756970639 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.19929

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 50009454 ns 
           Average runtime : 1.7617 ns/op 
           Ops per second  : 567633471 op/s 
      -- Other function --
           Total time      : 30995676 ns 
           Average runtime : 1.0919 ns/op 
           Ops per second  : 915838712 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.61343 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 223942747 ns
      Average runtime : 1.37743 ns/op
      Ops per second : 725990558 op/s
      -- Other function --
      Total time : 181056686 ns
      Average runtime : 1.11364 ns/op
      Ops per second : 897952589 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23687

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 195377145 ns
      Average runtime : 1.42847 ns/op
      Ops per second : 700050765 op/s
      -- Other function --
      Total time : 156858194 ns
      Average runtime : 1.14684 ns/op
      Ops per second : 871959038 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.24557

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1177976070 ns
      Average runtime : 1.75532 ns/op
      Ops per second : 569696258 op/s
      -- Other function --
      Total time : 708310813 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947449266 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.66308

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442749700 ns
      Average runtime : 1.3195 ns/op
      Ops per second : 757864499 op/s
      -- Other function --
      Total time : 442074809 ns
      Average runtime : 1.31749 ns/op
      Ops per second : 759021489 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00153

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 68353167 ns 
           Average runtime : 2.4079 ns/op 
           Ops per second  : 415299557 op/s 
      -- Other function --
           Total time      : 31004953 ns 
           Average runtime : 1.09222 ns/op 
           Ops per second  : 915564684 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.20459 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 317969381 ns
      Average runtime : 1.95577 ns/op
      Ops per second : 511308099 op/s
      -- Other function --
      Total time : 183921904 ns
      Average runtime : 1.13127 ns/op
      Ops per second : 883963880 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.72883

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190827590 ns
      Average runtime : 1.3952 ns/op
      Ops per second : 716740802 op/s
      -- Other function --
      Total time : 157613232 ns
      Average runtime : 1.15236 ns/op
      Ops per second : 867781963 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.21073

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1809014655 ns
      Average runtime : 2.69564 ns/op
      Ops per second : 370969111 op/s
      -- Other function --
      Total time : 710948792 ns
      Average runtime : 1.0594 ns/op
      Ops per second : 943933750 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.54451

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 667936746 ns
      Average runtime : 1.99061 ns/op
      Ops per second : 502359365 op/s
      -- Other function --
      Total time : 453389353 ns
      Average runtime : 1.35121 ns/op
      Ops per second : 740079752 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.47321

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 46498547 ns 
           Average runtime : 1.63802 ns/op 
           Ops per second  : 610493054 op/s 
      -- Other function --
           Total time      : 30990551 ns 
           Average runtime : 1.09171 ns/op 
           Ops per second  : 915990167 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.50041 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 223345577 ns
      Average runtime : 1.37376 ns/op
      Ops per second : 727931675 op/s
      -- Other function --
      Total time : 180679570 ns
      Average runtime : 1.11132 ns/op
      Ops per second : 899826803 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23614

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 193278385 ns
      Average runtime : 1.41312 ns/op
      Ops per second : 707652436 op/s
      -- Other function --
      Total time : 156623550 ns
      Average runtime : 1.14513 ns/op
      Ops per second : 873265355 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23403

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1095886561 ns
      Average runtime : 1.633 ns/op
      Ops per second : 612370462 op/s
      -- Other function --
      Total time : 709969151 ns
      Average runtime : 1.05794 ns/op
      Ops per second : 945236224 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.54357

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442772823 ns
      Average runtime : 1.31957 ns/op
      Ops per second : 757824921 op/s
      -- Other function --
      Total time : 445743282 ns
      Average runtime : 1.32842 ns/op
      Ops per second : 752774732 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.993336

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 91781369 ns 
           Average runtime : 3.23322 ns/op 
           Ops per second  : 309289786 op/s 
      -- Other function --
           Total time      : 30981232 ns 
           Average runtime : 1.09139 ns/op 
           Ops per second  : 916265692 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.96249 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 469102475 ns
      Average runtime : 2.88536 ns/op
      Ops per second : 346577408 op/s
      -- Other function --
      Total time : 181389579 ns
      Average runtime : 1.1157 ns/op
      Ops per second : 896304632 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.58617

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 346501634 ns
      Average runtime : 2.53339 ns/op
      Ops per second : 394728066 op/s
      -- Other function --
      Total time : 156492215 ns
      Average runtime : 1.14417 ns/op
      Ops per second : 873998236 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.21418

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2168936992 ns
      Average runtime : 3.23197 ns/op
      Ops per second : 309408969 op/s
      -- Other function --
      Total time : 708357382 ns
      Average runtime : 1.05554 ns/op
      Ops per second : 947386978 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.06193

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 922526716 ns
      Average runtime : 2.74935 ns/op
      Ops per second : 363723103 op/s
      -- Other function --
      Total time : 442043239 ns
      Average runtime : 1.3174 ns/op
      Ops per second : 759075697 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.08697

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 68263032 ns 
           Average runtime : 2.40472 ns/op 
           Ops per second  : 415847921 op/s 
      -- Other function --
           Total time      : 31035710 ns 
           Average runtime : 1.0933 ns/op 
           Ops per second  : 914657341 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.19949 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 353537333 ns
      Average runtime : 2.17453 ns/op
      Ops per second : 459867473 op/s
      -- Other function --
      Total time : 180562755 ns
      Average runtime : 1.1106 ns/op
      Ops per second : 900408946 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.95797

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 301081003 ns
      Average runtime : 2.2013 ns/op
      Ops per second : 454276153 op/s
      -- Other function --
      Total time : 156657467 ns
      Average runtime : 1.14537 ns/op
      Ops per second : 873076289 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.9219

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1610787039 ns
      Average runtime : 2.40026 ns/op
      Ops per second : 416621529 op/s
      -- Other function --
      Total time : 708385934 ns
      Average runtime : 1.05557 ns/op
      Ops per second : 947348793 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.27388

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 716110460 ns
      Average runtime : 2.13417 ns/op
      Ops per second : 468564975 op/s
      -- Other function --
      Total time : 442875448 ns
      Average runtime : 1.31987 ns/op
      Ops per second : 757649315 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.61695

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 82861067 ns 
           Average runtime : 2.91897 ns/op 
           Ops per second  : 342585981 op/s 
      -- Other function --
           Total time      : 31006176 ns 
           Average runtime : 1.09226 ns/op 
           Ops per second  : 915528570 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.6724 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 432573314 ns
      Average runtime : 2.66067 ns/op
      Ops per second : 375844544 op/s
      -- Other function --
      Total time : 180861246 ns
      Average runtime : 1.11244 ns/op
      Ops per second : 898922923 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.39174

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 363302032 ns
      Average runtime : 2.65622 ns/op
      Ops per second : 376474415 op/s
      -- Other function --
      Total time : 156442795 ns
      Average runtime : 1.1438 ns/op
      Ops per second : 874274331 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.32226

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1894059379 ns
      Average runtime : 2.82236 ns/op
      Ops per second : 354312313 op/s
      -- Other function --
      Total time : 708594997 ns
      Average runtime : 1.05588 ns/op
      Ops per second : 947069289 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.67297

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 851142599 ns
      Average runtime : 2.5366 ns/op
      Ops per second : 394228041 op/s
      -- Other function --
      Total time : 442985980 ns
      Average runtime : 1.3202 ns/op
      Ops per second : 757460269 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.92137

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 104298880 ns 
           Average runtime : 3.67417 ns/op 
           Ops per second  : 272170132 op/s 
      -- Other function --
           Total time      : 30980461 ns 
           Average runtime : 1.09136 ns/op 
           Ops per second  : 916288495 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.3666 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 454304343 ns
      Average runtime : 2.79434 ns/op
      Ops per second : 357866532 op/s
      -- Other function --
      Total time : 181621932 ns
      Average runtime : 1.11712 ns/op
      Ops per second : 895157970 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.50137

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 327342257 ns
      Average runtime : 2.39331 ns/op
      Ops per second : 417831541 op/s
      -- Other function --
      Total time : 156735176 ns
      Average runtime : 1.14594 ns/op
      Ops per second : 872643419 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.08851

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2632868408 ns
      Average runtime : 3.92328 ns/op
      Ops per second : 254888758 op/s
      -- Other function --
      Total time : 708317047 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947440927 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.71708

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 901945297 ns
      Average runtime : 2.68801 ns/op
      Ops per second : 372022872 op/s
      -- Other function --
      Total time : 442687251 ns
      Average runtime : 1.31931 ns/op
      Ops per second : 757971410 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.03743

  • Intel Core i7-13700H, GCC 14, -march=native
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 65012888 ns 
           Average runtime : 2.29023 ns/op 
           Ops per second  : 436637117 op/s 
      -- Other function --
           Total time      : 30733884 ns 
           Average runtime : 1.08267 ns/op 
           Ops per second  : 923639849 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.11535 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 230349180 ns
      Average runtime : 1.41683 ns/op
      Ops per second : 705799430 op/s
      -- Other function --
      Total time : 183450916 ns
      Average runtime : 1.12837 ns/op
      Ops per second : 886233350 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.25564

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 226474782 ns
      Average runtime : 1.65583 ns/op
      Ops per second : 603925606 op/s
      -- Other function --
      Total time : 188279433 ns
      Average runtime : 1.37657 ns/op
      Ops per second : 726441108 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.20287

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1169666013 ns
      Average runtime : 1.74294 ns/op
      Ops per second : 573743746 op/s
      -- Other function --
      Total time : 711964495 ns
      Average runtime : 1.06091 ns/op
      Ops per second : 942587115 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.64287

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 448622055 ns
      Average runtime : 1.337 ns/op
      Ops per second : 747944235 op/s
      -- Other function --
      Total time : 355747391 ns
      Average runtime : 1.06021 ns/op
      Ops per second : 943209390 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.26107

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 45963429 ns 
           Average runtime : 1.61917 ns/op 
           Ops per second  : 617600571 op/s 
      -- Other function --
           Total time      : 30757298 ns 
           Average runtime : 1.0835 ns/op 
           Ops per second  : 922936728 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.49439 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 266892985 ns
      Average runtime : 1.64161 ns/op
      Ops per second : 609159210 op/s
      -- Other function --
      Total time : 183616994 ns
      Average runtime : 1.12939 ns/op
      Ops per second : 885431770 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45353

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 261744408 ns
      Average runtime : 1.9137 ns/op
      Ops per second : 522547629 op/s
      -- Other function --
      Total time : 189187492 ns
      Average runtime : 1.38321 ns/op
      Ops per second : 722954348 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.38352

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1238071364 ns
      Average runtime : 1.84487 ns/op
      Ops per second : 542043519 op/s
      -- Other function --
      Total time : 708562295 ns
      Average runtime : 1.05584 ns/op
      Ops per second : 947112998 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.7473

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 531257188 ns
      Average runtime : 1.58327 ns/op
      Ops per second : 631604216 op/s
      -- Other function --
      Total time : 355766913 ns
      Average runtime : 1.06027 ns/op
      Ops per second : 943157634 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49327

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 61429508 ns 
           Average runtime : 2.164 ns/op 
           Ops per second  : 462107559 op/s 
      -- Other function --
           Total time      : 30689158 ns 
           Average runtime : 1.0811 ns/op 
           Ops per second  : 924985951 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.00167 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 317911920 ns
      Average runtime : 1.95541 ns/op
      Ops per second : 511400516 op/s
      -- Other function --
      Total time : 184020405 ns
      Average runtime : 1.13187 ns/op
      Ops per second : 883490719 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.72759

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 231760812 ns
      Average runtime : 1.69448 ns/op
      Ops per second : 590151194 op/s
      -- Other function --
      Total time : 192390168 ns
      Average runtime : 1.40663 ns/op
      Ops per second : 710919489 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.20464

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1382818167 ns
      Average runtime : 2.06056 ns/op
      Ops per second : 485304992 op/s
      -- Other function --
      Total time : 712931591 ns
      Average runtime : 1.06235 ns/op
      Ops per second : 941308490 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.93962

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 761845861 ns
      Average runtime : 2.27048 ns/op
      Ops per second : 440435916 op/s
      -- Other function --
      Total time : 354183876 ns
      Average runtime : 1.05555 ns/op
      Ops per second : 947373109 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.15099

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 39350340 ns 
           Average runtime : 1.38621 ns/op 
           Ops per second  : 721392496 op/s 
      -- Other function --
           Total time      : 30741462 ns 
           Average runtime : 1.08294 ns/op 
           Ops per second  : 923412165 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.28004 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 245973204 ns
      Average runtime : 1.51293 ns/op
      Ops per second : 660967606 op/s
      -- Other function --
      Total time : 183580276 ns
      Average runtime : 1.12917 ns/op
      Ops per second : 885608865 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.33987

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 260822938 ns
      Average runtime : 1.90696 ns/op
      Ops per second : 524393755 op/s
      -- Other function --
      Total time : 189173551 ns
      Average runtime : 1.38311 ns/op
      Ops per second : 723007625 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.37875

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 998119472 ns
      Average runtime : 1.48731 ns/op
      Ops per second : 672352938 op/s
      -- Other function --
      Total time : 712724767 ns
      Average runtime : 1.06204 ns/op
      Ops per second : 941581647 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40043

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 491309179 ns
      Average runtime : 1.46422 ns/op
      Ops per second : 682959517 op/s
      -- Other function --
      Total time : 355823377 ns
      Average runtime : 1.06044 ns/op
      Ops per second : 943007968 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.38077

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 84138003 ns 
           Average runtime : 2.96396 ns/op 
           Ops per second  : 337386662 op/s 
      -- Other function --
           Total time      : 30733892 ns 
           Average runtime : 1.08268 ns/op 
           Ops per second  : 923639609 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.73763 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 430545000 ns
      Average runtime : 2.6482 ns/op
      Ops per second : 377615162 op/s
      -- Other function --
      Total time : 183441950 ns
      Average runtime : 1.12832 ns/op
      Ops per second : 886276666 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.34704

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 372381067 ns
      Average runtime : 2.72261 ns/op
      Ops per second : 367295580 op/s
      -- Other function --
      Total time : 189117197 ns
      Average runtime : 1.3827 ns/op
      Ops per second : 723223071 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.96905

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1975363991 ns
      Average runtime : 2.94353 ns/op
      Ops per second : 339729064 op/s
      -- Other function --
      Total time : 711127427 ns
      Average runtime : 1.05967 ns/op
      Ops per second : 943696635 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.7778

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 856325854 ns
      Average runtime : 2.55206 ns/op
      Ops per second : 391841818 op/s
      -- Other function --
      Total time : 355822842 ns
      Average runtime : 1.06044 ns/op
      Ops per second : 943009386 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.40661

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 61263638 ns 
           Average runtime : 2.15815 ns/op 
           Ops per second  : 463358705 op/s 
      -- Other function --
           Total time      : 30735613 ns 
           Average runtime : 1.08273 ns/op 
           Ops per second  : 923587891 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.99324 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 336053582 ns
      Average runtime : 2.067 ns/op
      Ops per second : 483792849 op/s
      -- Other function --
      Total time : 183597367 ns
      Average runtime : 1.12927 ns/op
      Ops per second : 885526424 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.83038

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 309598872 ns
      Average runtime : 2.26358 ns/op
      Ops per second : 441777836 op/s
      -- Other function --
      Total time : 188446939 ns
      Average runtime : 1.37779 ns/op
      Ops per second : 725795392 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.64289

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1431619038 ns
      Average runtime : 2.13327 ns/op
      Ops per second : 468761969 op/s
      -- Other function --
      Total time : 712272487 ns
      Average runtime : 1.06136 ns/op
      Ops per second : 942179534 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00993

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 704510582 ns
      Average runtime : 2.0996 ns/op
      Ops per second : 476279971 op/s
      -- Other function --
      Total time : 355997163 ns
      Average runtime : 1.06095 ns/op
      Ops per second : 942547623 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.97897

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 72476094 ns 
           Average runtime : 2.55314 ns/op 
           Ops per second  : 391674529 op/s 
      -- Other function --
           Total time      : 30670008 ns 
           Average runtime : 1.08042 ns/op 
           Ops per second  : 925563501 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.36309 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 367432238 ns
      Average runtime : 2.26 ns/op
      Ops per second : 442477015 op/s
      -- Other function --
      Total time : 183639438 ns
      Average runtime : 1.12953 ns/op
      Ops per second : 885323554 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00083

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 325958080 ns
      Average runtime : 2.38318 ns/op
      Ops per second : 419605858 op/s
      -- Other function --
      Total time : 188925938 ns
      Average runtime : 1.3813 ns/op
      Ops per second : 723955225 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.72532

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1715859303 ns
      Average runtime : 2.55682 ns/op
      Ops per second : 391109316 op/s
      -- Other function --
      Total time : 712563938 ns
      Average runtime : 1.0618 ns/op
      Ops per second : 941794166 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.408

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 725070417 ns
      Average runtime : 2.16087 ns/op
      Ops per second : 462774748 op/s
      -- Other function --
      Total time : 355039387 ns
      Average runtime : 1.05809 ns/op
      Ops per second : 945090297 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.04222

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 99641739 ns 
           Average runtime : 3.51011 ns/op 
           Ops per second  : 284891053 op/s 
      -- Other function --
           Total time      : 30733797 ns 
           Average runtime : 1.08267 ns/op 
           Ops per second  : 923642464 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.24209 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 453684586 ns
      Average runtime : 2.79053 ns/op
      Ops per second : 358355397 op/s
      -- Other function --
      Total time : 183306535 ns
      Average runtime : 1.12748 ns/op
      Ops per second : 886931390 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.475

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 330465050 ns
      Average runtime : 2.41614 ns/op
      Ops per second : 413883162 op/s
      -- Other function --
      Total time : 188236958 ns
      Average runtime : 1.37626 ns/op
      Ops per second : 726605027 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.75558

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2205486411 ns
      Average runtime : 3.28643 ns/op
      Ops per second : 304281430 op/s
      -- Other function --
      Total time : 712762525 ns
      Average runtime : 1.0621 ns/op
      Ops per second : 941531767 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.09428

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 902776792 ns
      Average runtime : 2.69048 ns/op
      Ops per second : 371680223 op/s
      -- Other function --
      Total time : 355630979 ns
      Average runtime : 1.05986 ns/op
      Ops per second : 943518140 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.53852

  • Google Tensor G3, Clang 17
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 25959513 ns 
           Average runtime : 0.914485 ns/op 
           Ops per second  : 1093512039 op/s 
      -- Other function --
           Total time      : 48563965 ns 
           Average runtime : 1.71078 ns/op 
           Ops per second  : 584528878 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.534543 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 150354574 ns
      Average runtime : 0.924802 ns/op
      Ops per second : 1081312764 op/s
      -- Other function --
      Total time : 284006795 ns
      Average runtime : 1.74687 ns/op
      Ops per second : 572452218 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.529405

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 128300537 ns
      Average runtime : 0.938048 ns/op
      Ops per second : 1066043238 op/s
      -- Other function --
      Total time : 240648845 ns
      Average runtime : 1.75946 ns/op
      Ops per second : 568354774 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.533144

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 568161092 ns
      Average runtime : 0.846626 ns/op
      Ops per second : 1181158952 op/s
      -- Other function --
      Total time : 1262217652 ns
      Average runtime : 1.88085 ns/op
      Ops per second : 531674199 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.450129

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 230753336 ns
      Average runtime : 0.687699 ns/op
      Ops per second : 1454125369 op/s
      -- Other function --
      Total time : 230636068 ns
      Average runtime : 0.687349 ns/op
      Ops per second : 1454864726 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00051

    • ceilf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 148271688 ns 
           Average runtime : 1.83051 ns/op 
           Ops per second  : 546294448 op/s 
      -- Other function --
           Total time      : 308028240 ns 
           Average runtime : 3.80282 ns/op 
           Ops per second  : 262962902 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.481357 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183131673 ns
      Average runtime : 1.45343 ns/op
      Ops per second : 688029535 op/s
      -- Other function --
      Total time : 93633261 ns
      Average runtime : 0.743121 ns/op
      Ops per second : 1345675656 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.95584

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 72599609 ns
      Average runtime : 1.15237 ns/op
      Ops per second : 867773268 op/s
      -- Other function --
      Total time : 62580282 ns
      Average runtime : 0.993338 ns/op
      Ops per second : 1006706872 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.1601

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 365078613 ns
      Average runtime : 8.92176 ns/op
      Ops per second : 112085448 op/s
      -- Other function --
      Total time : 28483724 ns
      Average runtime : 0.696083 ns/op
      Ops per second : 1436609903 op/s
      -- Average runtime ratio --
      Mine / Other's : 12.8171

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 28305460 ns
      Average runtime : 1.38345 ns/op
      Ops per second : 722828740 op/s
      -- Other function --
      Total time : 14167196 ns
      Average runtime : 0.692434 ns/op
      Ops per second : 1444181332 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.99796

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30571289 ns 
           Average runtime : 1.07695 ns/op 
           Ops per second  : 928552276 op/s 
      -- Other function --
           Total time      : 20875855 ns 
           Average runtime : 0.735401 ns/op 
           Ops per second  : 1359802508 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.46443 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 173449016 ns
      Average runtime : 1.06685 ns/op
      Ops per second : 937337805 op/s
      -- Other function --
      Total time : 122721639 ns
      Average runtime : 0.754837 ns/op
      Ops per second : 1324789347 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.41335

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 147069051 ns
      Average runtime : 1.07527 ns/op
      Ops per second : 929997977 op/s
      -- Other function --
      Total time : 102270752 ns
      Average runtime : 0.747736 ns/op
      Ops per second : 1337370825 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.43804

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 691494547 ns
      Average runtime : 1.03041 ns/op
      Ops per second : 970490024 op/s
      -- Other function --
      Total time : 460785034 ns
      Average runtime : 0.686623 ns/op
      Ops per second : 1456402683 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50069

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 345703532 ns
      Average runtime : 1.03028 ns/op
      Ops per second : 970612819 op/s
      -- Other function --
      Total time : 230371826 ns
      Average runtime : 0.686562 ns/op
      Ops per second : 1456533491 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50063

    • floorf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 378545696 ns 
           Average runtime : 4.6734 ns/op 
           Ops per second  : 213976808 op/s 
      -- Other function --
           Total time      : 62146159 ns 
           Average runtime : 0.767237 ns/op 
           Ops per second  : 1303379022 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 6.09122 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 176330363 ns
      Average runtime : 1.39945 ns/op
      Ops per second : 714567802 op/s
      -- Other function --
      Total time : 93451660 ns
      Average runtime : 0.74168 ns/op
      Ops per second : 1348290656 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.88686

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 74138753 ns
      Average runtime : 1.17681 ns/op
      Ops per second : 849758020 op/s
      -- Other function --
      Total time : 49456054 ns
      Average runtime : 0.785017 ns/op
      Ops per second : 1273858201 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49908

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 52267374 ns
      Average runtime : 1.27731 ns/op
      Ops per second : 782897568 op/s
      -- Other function --
      Total time : 28355835 ns
      Average runtime : 0.692958 ns/op
      Ops per second : 1443089226 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.84327

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 28432780 ns
      Average runtime : 1.38968 ns/op
      Ops per second : 719591963 op/s
      -- Other function --
      Total time : 14171590 ns
      Average runtime : 0.692649 ns/op
      Ops per second : 1443733554 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00632

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30776611 ns 
           Average runtime : 1.08418 ns/op 
           Ops per second  : 922357565 op/s 
      -- Other function --
           Total time      : 20931315 ns 
           Average runtime : 0.737355 ns/op 
           Ops per second  : 1356199550 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47036 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174281657 ns
      Average runtime : 1.07197 ns/op
      Ops per second : 932859618 op/s
      -- Other function --
      Total time : 122640585 ns
      Average runtime : 0.754338 ns/op
      Ops per second : 1325664909 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42108

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 147845581 ns
      Average runtime : 1.08095 ns/op
      Ops per second : 925113345 op/s
      -- Other function --
      Total time : 102187337 ns
      Average runtime : 0.747126 ns/op
      Ops per second : 1338462514 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44681

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693297933 ns
      Average runtime : 1.03309 ns/op
      Ops per second : 967965614 op/s
      -- Other function --
      Total time : 461456095 ns
      Average runtime : 0.687623 ns/op
      Ops per second : 1454284746 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50241

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346450277 ns
      Average runtime : 1.0325 ns/op
      Ops per second : 968520743 op/s
      -- Other function --
      Total time : 230789428 ns
      Average runtime : 0.687806 ns/op
      Ops per second : 1453897966 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50115

    • roundf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 200517904 ns 
           Average runtime : 2.47553 ns/op 
           Ops per second  : 403953953 op/s 
      -- Other function --
           Total time      : 62469401 ns 
           Average runtime : 0.771227 ns/op 
           Ops per second  : 1296634811 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.20986 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 222969320 ns
      Average runtime : 1.7696 ns/op
      Ops per second : 565100167 op/s
      -- Other function --
      Total time : 94555298 ns
      Average runtime : 0.750439 ns/op
      Ops per second : 1332553570 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.35808

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 68335246 ns
      Average runtime : 1.08469 ns/op
      Ops per second : 921925414 op/s
      -- Other function --
      Total time : 49497396 ns
      Average runtime : 0.785673 ns/op
      Ops per second : 1272794229 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.38058

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 99741699 ns
      Average runtime : 2.43748 ns/op
      Ops per second : 410259704 op/s
      -- Other function --
      Total time : 28329793 ns
      Average runtime : 0.692321 ns/op
      Ops per second : 1444415778 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.52074

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 35287028 ns
      Average runtime : 1.72468 ns/op
      Ops per second : 579816469 op/s
      -- Other function --
      Total time : 14169515 ns
      Average runtime : 0.692547 ns/op
      Ops per second : 1443944976 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.49035

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 75185303 ns 
           Average runtime : 2.64858 ns/op 
           Ops per second  : 377561024 op/s 
      -- Other function --
           Total time      : 27353760 ns 
           Average runtime : 0.9636 ns/op 
           Ops per second  : 1037774697 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.74863 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 341011068 ns
      Average runtime : 2.09749 ns/op
      Ops per second : 476759657 op/s
      -- Other function --
      Total time : 151062744 ns
      Average runtime : 0.929158 ns/op
      Ops per second : 1076243656 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.25741

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 215218221 ns
      Average runtime : 1.57353 ns/op
      Ops per second : 635512733 op/s
      -- Other function --
      Total time : 128228963 ns
      Average runtime : 0.937525 ns/op
      Ops per second : 1066638275 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.67839

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2460392051 ns
      Average runtime : 3.66627 ns/op
      Ops per second : 272756758 op/s
      -- Other function --
      Total time : 569404582 ns
      Average runtime : 0.848479 ns/op
      Ops per second : 1178579486 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.32099

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 723772136 ns
      Average runtime : 2.15701 ns/op
      Ops per second : 463604860 op/s
      -- Other function --
      Total time : 284326742 ns
      Average runtime : 0.84736 ns/op
      Ops per second : 1180136196 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.54556

    • roundevenf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 148228760 ns 
           Average runtime : 1.82998 ns/op 
           Ops per second  : 546452658 op/s 
      -- Other function --
           Total time      : 61854248 ns 
           Average runtime : 0.763633 ns/op 
           Ops per second  : 1309530106 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.39642 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 184139160 ns
      Average runtime : 1.46142 ns/op
      Ops per second : 684265096 op/s
      -- Other function --
      Total time : 92669556 ns
      Average runtime : 0.735473 ns/op
      Ops per second : 1359669835 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.98705

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 92805420 ns
      Average runtime : 1.4731 ns/op
      Ops per second : 678839662 op/s
      -- Other function --
      Total time : 49601929 ns
      Average runtime : 0.787332 ns/op
      Ops per second : 1270111894 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.871

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 102209961 ns
      Average runtime : 2.4978 ns/op
      Ops per second : 400352368 op/s
      -- Other function --
      Total time : 28976969 ns
      Average runtime : 0.708137 ns/op
      Ops per second : 1412155978 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.52728

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 30380127 ns
      Average runtime : 1.48485 ns/op
      Ops per second : 673466572 op/s
      -- Other function --
      Total time : 14498943 ns
      Average runtime : 0.708648 ns/op
      Ops per second : 1411137349 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.09533

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 25828491 ns 
           Average runtime : 0.909869 ns/op 
           Ops per second  : 1099059174 op/s 
      -- Other function --
           Total time      : 37314047 ns 
           Average runtime : 1.31447 ns/op 
           Ops per second  : 760760150 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.692192 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 149701823 ns
      Average runtime : 0.920787 ns/op
      Ops per second : 1086027656 op/s
      -- Other function --
      Total time : 215440878 ns
      Average runtime : 1.32514 ns/op
      Ops per second : 754640073 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.694863

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 129688029 ns
      Average runtime : 0.948193 ns/op
      Ops per second : 1054637972 op/s
      -- Other function --
      Total time : 183476115 ns
      Average runtime : 1.34146 ns/op
      Ops per second : 745458993 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.706839

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 569263103 ns
      Average runtime : 0.848268 ns/op
      Ops per second : 1178872399 op/s
      -- Other function --
      Total time : 863547974 ns
      Average runtime : 1.28679 ns/op
      Ops per second : 777129447 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.659214

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 284963990 ns
      Average runtime : 0.849259 ns/op
      Ops per second : 1177497128 op/s
      -- Other function --
      Total time : 430328125 ns
      Average runtime : 1.28248 ns/op
      Ops per second : 779740529 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.662202

    • truncf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 118269206 ns 
           Average runtime : 1.46011 ns/op 
           Ops per second  : 684878192 op/s 
      -- Other function --
           Total time      : 74529541 ns 
           Average runtime : 0.920118 ns/op 
           Ops per second  : 1086817373 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.58688 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 267526978 ns
      Average runtime : 2.12323 ns/op
      Ops per second : 470980537 op/s
      -- Other function --
      Total time : 118748576 ns
      Average runtime : 0.942449 ns/op
      Ops per second : 1061065355 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.25289

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 91911744 ns
      Average runtime : 1.45892 ns/op
      Ops per second : 685440154 op/s
      -- Other function --
      Total time : 64787761 ns
      Average runtime : 1.02838 ns/op
      Ops per second : 972405883 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.41866

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 95261067 ns
      Average runtime : 2.32798 ns/op
      Ops per second : 429556389 op/s
      -- Other function --
      Total time : 36176636 ns
      Average runtime : 0.884082 ns/op
      Ops per second : 1131116779 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.63322

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 37092773 ns
      Average runtime : 1.81294 ns/op
      Ops per second : 551589928 op/s
      -- Other function --
      Total time : 18159708 ns
      Average runtime : 0.887571 ns/op
      Ops per second : 1126670098 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.04259

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 117982219 ns 
           Average runtime : 4.1562 ns/op 
           Ops per second  : 240604391 op/s 
      -- Other function --
           Total time      : 37716227 ns 
           Average runtime : 1.32864 ns/op 
           Ops per second  : 752647925 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.12816 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 613251872 ns
      Average runtime : 3.77199 ns/op
      Ops per second : 265111820 op/s
      -- Other function --
      Total time : 214073039 ns
      Average runtime : 1.31672 ns/op
      Ops per second : 759461914 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.86469

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 459330119 ns
      Average runtime : 3.35832 ns/op
      Ops per second : 297768237 op/s
      -- Other function --
      Total time : 181508830 ns
      Average runtime : 1.32707 ns/op
      Ops per second : 753538657 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.53062

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2794816245 ns
      Average runtime : 4.1646 ns/op
      Ops per second : 240119027 op/s
      -- Other function --
      Total time : 461680094 ns
      Average runtime : 0.687957 ns/op
      Ops per second : 1453579153 op/s
      -- Average runtime ratio --
      Mine / Other's : 6.05358

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 934251506 ns
      Average runtime : 2.78429 ns/op
      Ops per second : 359158404 op/s
      -- Other function --
      Total time : 231252157 ns
      Average runtime : 0.689185 ns/op
      Ops per second : 1450988757 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.03997

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 60399577 ns 
           Average runtime : 2.12772 ns/op 
           Ops per second  : 469987397 op/s 
      -- Other function --
           Total time      : 20834066 ns 
           Average runtime : 0.733929 ns/op 
           Ops per second  : 1362530002 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.89908 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 347419311 ns
      Average runtime : 2.13691 ns/op
      Ops per second : 467965696 op/s
      -- Other function --
      Total time : 122817749 ns
      Average runtime : 0.755428 ns/op
      Ops per second : 1323752644 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.82874

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 246545085 ns
      Average runtime : 1.80257 ns/op
      Ops per second : 554762306 op/s
      -- Other function --
      Total time : 102458903 ns
      Average runtime : 0.749111 ns/op
      Ops per second : 1334914936 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.40628

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1653740398 ns
      Average runtime : 2.46427 ns/op
      Ops per second : 405800427 op/s
      -- Other function --
      Total time : 461468384 ns
      Average runtime : 0.687642 ns/op
      Ops per second : 1454246018 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.58365

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 705453206 ns
      Average runtime : 2.10241 ns/op
      Ops per second : 475643568 op/s
      -- Other function --
      Total time : 231091594 ns
      Average runtime : 0.688707 ns/op
      Ops per second : 1451996908 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.0527

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 77341471 ns 
           Average runtime : 2.72453 ns/op 
           Ops per second  : 367035170 op/s 
      -- Other function --
           Total time      : 21265422 ns 
           Average runtime : 0.749124 ns/op 
           Ops per second  : 1334891919 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.63696 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 402867554 ns
      Average runtime : 2.47796 ns/op
      Ops per second : 403557740 op/s
      -- Other function --
      Total time : 123223511 ns
      Average runtime : 0.757924 ns/op
      Ops per second : 1319393666 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.2694

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 294491537 ns
      Average runtime : 2.15313 ns/op
      Ops per second : 464440918 op/s
      -- Other function --
      Total time : 102600952 ns
      Average runtime : 0.75015 ns/op
      Ops per second : 1333066773 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.87026

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1475044841 ns
      Average runtime : 2.19799 ns/op
      Ops per second : 454961463 op/s
      -- Other function --
      Total time : 463060466 ns
      Average runtime : 0.690014 ns/op
      Ops per second : 1449246068 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.18543

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 821289592 ns
      Average runtime : 2.44763 ns/op
      Ops per second : 408557813 op/s
      -- Other function --
      Total time : 231125122 ns
      Average runtime : 0.688807 ns/op
      Ops per second : 1451786275 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.55344

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 95403036 ns 
           Average runtime : 3.3608 ns/op 
           Ops per second  : 297548602 op/s 
      -- Other function --
           Total time      : 21289511 ns 
           Average runtime : 0.749973 ns/op 
           Ops per second  : 1333381494 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 4.48122 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 469745402 ns
      Average runtime : 2.88931 ns/op
      Ops per second : 346103057 op/s
      -- Other function --
      Total time : 125325887 ns
      Average runtime : 0.770855 ns/op
      Ops per second : 1297260477 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.74819

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 392208537 ns
      Average runtime : 2.86757 ns/op
      Ops per second : 348727544 op/s
      -- Other function --
      Total time : 102764730 ns
      Average runtime : 0.751347 ns/op
      Ops per second : 1330942240 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.81657

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2516861045 ns
      Average runtime : 3.75042 ns/op
      Ops per second : 266637111 op/s
      -- Other function --
      Total time : 461579672 ns
      Average runtime : 0.687807 ns/op
      Ops per second : 1453895395 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.45271

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 961673381 ns
      Average runtime : 2.86601 ns/op
      Ops per second : 348917092 op/s
      -- Other function --
      Total time : 232094361 ns
      Average runtime : 0.691695 ns/op
      Ops per second : 1445723534 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.14346

    • rintf16_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 326256877 ns 
           Average runtime : 4.02786 ns/op 
           Ops per second  : 248270628 op/s 
      -- Other function --
           Total time      : 80542074 ns 
           Average runtime : 0.994347 ns/op 
           Ops per second  : 1005685550 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 4.05076 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 554256145 ns
      Average runtime : 4.39886 ns/op
      Ops per second : 227331715 op/s
      -- Other function --
      Total time : 118647949 ns
      Average runtime : 0.94165 ns/op
      Ops per second : 1061965259 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.67143

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 210080078 ns
      Average runtime : 3.3346 ns/op
      Ops per second : 299885646 op/s
      -- Other function --
      Total time : 65596110 ns
      Average runtime : 1.04121 ns/op
      Ops per second : 960422805 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.20263

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 196459269 ns
      Average runtime : 4.80106 ns/op
      Ops per second : 208287449 op/s
      -- Other function --
      Total time : 36193685 ns
      Average runtime : 0.884499 ns/op
      Ops per second : 1130583967 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.428

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 75416708 ns
      Average runtime : 3.68606 ns/op
      Ops per second : 271292668 op/s
      -- Other function --
      Total time : 18155761 ns
      Average runtime : 0.887378 ns/op
      Ops per second : 1126915032 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.15387

    • rintf16_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 178381022 ns 
           Average runtime : 2.20223 ns/op 
           Ops per second  : 454084179 op/s 
      -- Other function --
           Total time      : 62390218 ns 
           Average runtime : 0.77025 ns/op 
           Ops per second  : 1298280445 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.85912 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 232741740 ns
      Average runtime : 1.84716 ns/op
      Ops per second : 541372596 op/s
      -- Other function --
      Total time : 93134847 ns
      Average runtime : 0.739165 ns/op
      Ops per second : 1352877081 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.49898

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 118284098 ns
      Average runtime : 1.87753 ns/op
      Ops per second : 532615973 op/s
      -- Other function --
      Total time : 51199707 ns
      Average runtime : 0.812694 ns/op
      Ops per second : 1230475791 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.31025

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 102596354 ns
      Average runtime : 2.50724 ns/op
      Ops per second : 398844582 op/s
      -- Other function --
      Total time : 29160359 ns
      Average runtime : 0.712619 ns/op
      Ops per second : 1403274904 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.51835

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 35695231 ns
      Average runtime : 1.74463 ns/op
      Ops per second : 573185812 op/s
      -- Other function --
      Total time : 14489055 ns
      Average runtime : 0.708165 ns/op
      Ops per second : 1412100375 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.4636

    • rintf16_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 198747721 ns 
           Average runtime : 2.45368 ns/op 
           Ops per second  : 407551843 op/s 
      -- Other function --
           Total time      : 63922770 ns 
           Average runtime : 0.78917 ns/op 
           Ops per second  : 1267154098 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.10919 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 281150757 ns
      Average runtime : 2.23136 ns/op
      Ops per second : 448158138 op/s
      -- Other function --
      Total time : 94918091 ns
      Average runtime : 0.753318 ns/op
      Ops per second : 1327460325 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.96204

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 141143921 ns
      Average runtime : 2.24038 ns/op
      Ops per second : 446352910 op/s
      -- Other function --
      Total time : 49882609 ns
      Average runtime : 0.791787 ns/op
      Ops per second : 1262965214 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.82952

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 87436401 ns
      Average runtime : 2.13676 ns/op
      Ops per second : 467997304 op/s
      -- Other function --
      Total time : 28982462 ns
      Average runtime : 0.708271 ns/op
      Ops per second : 1411888334 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.01687

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 43801025 ns
      Average runtime : 2.14081 ns/op
      Ops per second : 467112356 op/s
      -- Other function --
      Total time : 14537842 ns
      Average runtime : 0.710549 ns/op
      Ops per second : 1407361560 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.0129

    • rintf16_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 241352743 ns 
           Average runtime : 2.97966 ns/op 
           Ops per second  : 335608367 op/s 
      -- Other function --
           Total time      : 62645020 ns 
           Average runtime : 0.773395 ns/op 
           Ops per second  : 1292999826 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.8527 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 332058594 ns
      Average runtime : 2.63539 ns/op
      Ops per second : 379451103 op/s
      -- Other function --
      Total time : 93858195 ns
      Average runtime : 0.744906 ns/op
      Ops per second : 1342450704 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.53788

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 165848633 ns
      Average runtime : 2.63252 ns/op
      Ops per second : 379864451 op/s
      -- Other function --
      Total time : 50059326 ns
      Average runtime : 0.794592 ns/op
      Ops per second : 1258506756 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.31304

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 156647664 ns
      Average runtime : 3.82814 ns/op
      Ops per second : 261223174 op/s
      -- Other function --
      Total time : 29068847 ns
      Average runtime : 0.710382 ns/op
      Ops per second : 1407692572 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.38885

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 51767903 ns
      Average runtime : 2.5302 ns/op
      Ops per second : 395225589 op/s
      -- Other function --
      Total time : 15394531 ns
      Average runtime : 0.752421 ns/op
      Ops per second : 1329043411 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.36275

  • Google Tensor G3, Clang 17, -mcpu=cortex-x3
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20627604 ns 
           Average runtime : 0.726656 ns/op 
           Ops per second  : 1376167585 op/s 
      -- Other function --
           Total time      : 20781983 ns 
           Average runtime : 0.732094 ns/op 
           Ops per second  : 1365944722 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.992571 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 118356364 ns
      Average runtime : 0.727987 ns/op
      Ops per second : 1373650849 op/s
      -- Other function --
      Total time : 122454468 ns
      Average runtime : 0.753194 ns/op
      Ops per second : 1327679770 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.966534

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 100468628 ns
      Average runtime : 0.73456 ns/op
      Ops per second : 1361359488 op/s
      -- Other function --
      Total time : 102015096 ns
      Average runtime : 0.745867 ns/op
      Ops per second : 1340722357 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.984841

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 461335246 ns
      Average runtime : 0.687443 ns/op
      Ops per second : 1454665703 op/s
      -- Other function --
      Total time : 461323975 ns
      Average runtime : 0.687426 ns/op
      Ops per second : 1454701243 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00002

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 230541870 ns
      Average runtime : 0.687068 ns/op
      Ops per second : 1455459175 op/s
      -- Other function --
      Total time : 230331055 ns
      Average runtime : 0.68644 ns/op
      Ops per second : 1456791312 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00092

    • ceilf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 148725342 ns 
           Average runtime : 1.83612 ns/op 
           Ops per second  : 544628097 op/s 
      -- Other function --
           Total time      : 61885742 ns 
           Average runtime : 0.764022 ns/op 
           Ops per second  : 1308863679 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.40322 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 185216757 ns
      Average runtime : 1.46997 ns/op
      Ops per second : 680284019 op/s
      -- Other function --
      Total time : 94090454 ns
      Average runtime : 0.74675 ns/op
      Ops per second : 1339136911 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.9685

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 74448771 ns
      Average runtime : 1.18173 ns/op
      Ops per second : 846219476 op/s
      -- Other function --
      Total time : 49669556 ns
      Average runtime : 0.788406 ns/op
      Ops per second : 1268382588 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49888

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 86064901 ns
      Average runtime : 2.10325 ns/op
      Ops per second : 475455145 op/s
      -- Other function --
      Total time : 28333578 ns
      Average runtime : 0.692414 ns/op
      Ops per second : 1444222822 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.03756

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 28552327 ns
      Average runtime : 1.39552 ns/op
      Ops per second : 716579072 op/s
      -- Other function --
      Total time : 14519531 ns
      Average runtime : 0.709654 ns/op
      Ops per second : 1409136424 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.96648

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30647908 ns 
           Average runtime : 1.07964 ns/op 
           Ops per second  : 926230919 op/s 
      -- Other function --
           Total time      : 20785441 ns 
           Average runtime : 0.732216 ns/op 
           Ops per second  : 1365717475 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47449 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174861044 ns
      Average runtime : 1.07554 ns/op
      Ops per second : 929768668 op/s
      -- Other function --
      Total time : 122575155 ns
      Average runtime : 0.753936 ns/op
      Ops per second : 1326372542 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42656

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148027059 ns
      Average runtime : 1.08228 ns/op
      Ops per second : 923979175 op/s
      -- Other function --
      Total time : 101865723 ns
      Average runtime : 0.744774 ns/op
      Ops per second : 1342688354 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45316

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 692931031 ns
      Average runtime : 1.03255 ns/op
      Ops per second : 968478145 op/s
      -- Other function --
      Total time : 460911174 ns
      Average runtime : 0.686811 ns/op
      Ops per second : 1456004101 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50339

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346428874 ns
      Average runtime : 1.03244 ns/op
      Ops per second : 968580580 op/s
      -- Other function --
      Total time : 230404949 ns
      Average runtime : 0.68666 ns/op
      Ops per second : 1456324100 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50357

    • floorf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 106872274 ns 
           Average runtime : 1.31941 ns/op 
           Ops per second  : 757914068 op/s 
      -- Other function --
           Total time      : 62783406 ns 
           Average runtime : 0.775104 ns/op 
           Ops per second  : 1290149820 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.70224 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 186978963 ns
      Average runtime : 1.48396 ns/op
      Ops per second : 673872600 op/s
      -- Other function --
      Total time : 93133586 ns
      Average runtime : 0.739155 ns/op
      Ops per second : 1352895399 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00764

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 75329427 ns
      Average runtime : 1.19571 ns/op
      Ops per second : 836326552 op/s
      -- Other function --
      Total time : 50118327 ns
      Average runtime : 0.795529 ns/op
      Ops per second : 1257025199 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50303

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 52266032 ns
      Average runtime : 1.27727 ns/op
      Ops per second : 782917670 op/s
      -- Other function --
      Total time : 28512247 ns
      Average runtime : 0.69678 ns/op
      Ops per second : 1435172752 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.83311

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 29470784 ns
      Average runtime : 1.44041 ns/op
      Ops per second : 694246885 op/s
      -- Other function --
      Total time : 14168131 ns
      Average runtime : 0.69248 ns/op
      Ops per second : 1444086026 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.08008

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30610026 ns 
           Average runtime : 1.07831 ns/op 
           Ops per second  : 927377193 op/s 
      -- Other function --
           Total time      : 30561198 ns 
           Average runtime : 1.07659 ns/op 
           Ops per second  : 928858875 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.0016 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 173538656 ns
      Average runtime : 1.0674 ns/op
      Ops per second : 936853631 op/s
      -- Other function --
      Total time : 172905314 ns
      Average runtime : 1.06351 ns/op
      Ops per second : 940285270 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00366

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 146926433 ns
      Average runtime : 1.07423 ns/op
      Ops per second : 930900704 op/s
      -- Other function --
      Total time : 146158285 ns
      Average runtime : 1.06861 ns/op
      Ops per second : 935793136 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00526

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 691218425 ns
      Average runtime : 1.03 ns/op
      Ops per second : 970877707 op/s
      -- Other function --
      Total time : 692112712 ns
      Average runtime : 1.03133 ns/op
      Ops per second : 969623225 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998708

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 345808228 ns
      Average runtime : 1.03059 ns/op
      Ops per second : 970318959 op/s
      -- Other function --
      Total time : 346025431 ns
      Average runtime : 1.03124 ns/op
      Ops per second : 969709882 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999372

    • roundf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 176107463 ns 
           Average runtime : 2.17417 ns/op 
           Ops per second  : 459946436 op/s 
      -- Other function --
           Total time      : 62380860 ns 
           Average runtime : 0.770134 ns/op 
           Ops per second  : 1298475205 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.8231 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 222585938 ns
      Average runtime : 1.76656 ns/op
      Ops per second : 566073495 op/s
      -- Other function --
      Total time : 93469035 ns
      Average runtime : 0.741818 ns/op
      Ops per second : 1348040022 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.38139

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 71920166 ns
      Average runtime : 1.14159 ns/op
      Ops per second : 875971281 op/s
      -- Other function --
      Total time : 49413452 ns
      Average runtime : 0.784341 ns/op
      Ops per second : 1274956463 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45548

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 95334757 ns
      Average runtime : 2.32978 ns/op
      Ops per second : 429224359 op/s
      -- Other function --
      Total time : 28482789 ns
      Average runtime : 0.69606 ns/op
      Ops per second : 1436657063 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.3471

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 35262410 ns
      Average runtime : 1.72348 ns/op
      Ops per second : 580221261 op/s
      -- Other function --
      Total time : 14163819 ns
      Average runtime : 0.692269 ns/op
      Ops per second : 1444525660 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.48961

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 50129192 ns 
           Average runtime : 1.76592 ns/op 
           Ops per second  : 566277629 op/s 
      -- Other function --
           Total time      : 30564169 ns 
           Average runtime : 1.07669 ns/op 
           Ops per second  : 928768585 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.64013 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 239341471 ns
      Average runtime : 1.47214 ns/op
      Ops per second : 679281861 op/s
      -- Other function --
      Total time : 173842245 ns
      Average runtime : 1.06927 ns/op
      Ops per second : 935217558 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.37677

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 154601725 ns
      Average runtime : 1.13035 ns/op
      Ops per second : 884685601 op/s
      -- Other function --
      Total time : 146604370 ns
      Average runtime : 1.07187 ns/op
      Ops per second : 932945723 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.05455

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1626555787 ns
      Average runtime : 2.42376 ns/op
      Ops per second : 412582565 op/s
      -- Other function --
      Total time : 691861003 ns
      Average runtime : 1.03095 ns/op
      Ops per second : 969975988 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.35099

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 478693441 ns
      Average runtime : 1.42662 ns/op
      Ops per second : 700958591 op/s
      -- Other function --
      Total time : 347989869 ns
      Average runtime : 1.03709 ns/op
      Ops per second : 964235772 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.3756

    • roundevenf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 150159261 ns 
           Average runtime : 1.85382 ns/op 
           Ops per second  : 539427268 op/s 
      -- Other function --
           Total time      : 62226034 ns 
           Average runtime : 0.768223 ns/op 
           Ops per second  : 1301705970 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.41313 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 188096517 ns
      Average runtime : 1.49283 ns/op
      Ops per second : 669868863 op/s
      -- Other function --
      Total time : 93753174 ns
      Average runtime : 0.744073 ns/op
      Ops per second : 1343954499 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.00629

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 74365966 ns
      Average runtime : 1.18041 ns/op
      Ops per second : 847161724 op/s
      -- Other function --
      Total time : 50895061 ns
      Average runtime : 0.807858 ns/op
      Ops per second : 1237841133 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46116

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 100841065 ns
      Average runtime : 2.46435 ns/op
      Ops per second : 405787067 op/s
      -- Other function --
      Total time : 28985351 ns
      Average runtime : 0.708342 ns/op
      Ops per second : 1411747610 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.47904

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 30157593 ns
      Average runtime : 1.47398 ns/op
      Ops per second : 678436107 op/s
      -- Other function --
      Total time : 14380208 ns
      Average runtime : 0.702845 ns/op
      Ops per second : 1422788877 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.09716

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30674886 ns 
           Average runtime : 1.08059 ns/op 
           Ops per second  : 925416316 op/s 
      -- Other function --
           Total time      : 30703817 ns 
           Average runtime : 1.08161 ns/op 
           Ops per second  : 924544332 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999058 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174047160 ns
      Average runtime : 1.07053 ns/op
      Ops per second : 934116477 op/s
      -- Other function --
      Total time : 174111206 ns
      Average runtime : 1.07092 ns/op
      Ops per second : 933772866 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999632

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 147391887 ns
      Average runtime : 1.07763 ns/op
      Ops per second : 927960980 op/s
      -- Other function --
      Total time : 147386475 ns
      Average runtime : 1.07759 ns/op
      Ops per second : 927995055 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00004

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693076986 ns
      Average runtime : 1.03277 ns/op
      Ops per second : 968274194 op/s
      -- Other function --
      Total time : 461211670 ns
      Average runtime : 0.687259 ns/op
      Ops per second : 1455055462 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50273

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346381714 ns
      Average runtime : 1.0323 ns/op
      Ops per second : 968712453 op/s
      -- Other function --
      Total time : 230358276 ns
      Average runtime : 0.686521 ns/op
      Ops per second : 1456619166 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50367

    • truncf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 120901123 ns 
           Average runtime : 1.49261 ns/op 
           Ops per second  : 669968962 op/s 
      -- Other function --
           Total time      : 62375895 ns 
           Average runtime : 0.770073 ns/op 
           Ops per second  : 1298578561 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.93827 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 182252401 ns
      Average runtime : 1.44645 ns/op
      Ops per second : 691348916 op/s
      -- Other function --
      Total time : 93549520 ns
      Average runtime : 0.742457 ns/op
      Ops per second : 1346880240 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.94819

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 69032064 ns
      Average runtime : 1.09575 ns/op
      Ops per second : 912619387 op/s
      -- Other function --
      Total time : 51914144 ns
      Average runtime : 0.824034 ns/op
      Ops per second : 1213542112 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.32974

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 57497844 ns
      Average runtime : 1.40513 ns/op
      Ops per second : 711678858 op/s
      -- Other function --
      Total time : 28407633 ns
      Average runtime : 0.694224 ns/op
      Ops per second : 1440457921 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.02403

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 28191121 ns
      Average runtime : 1.37787 ns/op
      Ops per second : 725760426 op/s
      -- Other function --
      Total time : 14193563 ns
      Average runtime : 0.693723 ns/op
      Ops per second : 1441498515 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.98619

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 81303793 ns 
           Average runtime : 2.86412 ns/op 
           Ops per second  : 349147794 op/s 
      -- Other function --
           Total time      : 22403361 ns 
           Average runtime : 0.789211 ns/op 
           Ops per second  : 1267088451 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.62909 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 420096924 ns
      Average runtime : 2.58393 ns/op
      Ops per second : 387006689 op/s
      -- Other function --
      Total time : 123752319 ns
      Average runtime : 0.761177 ns/op
      Ops per second : 1313755744 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.39466

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 325132527 ns
      Average runtime : 2.37715 ns/op
      Ops per second : 420671291 op/s
      -- Other function --
      Total time : 103634196 ns
      Average runtime : 0.757704 ns/op
      Ops per second : 1319775955 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.13731

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2191780071 ns
      Average runtime : 3.26601 ns/op
      Ops per second : 306184260 op/s
      -- Other function --
      Total time : 462806356 ns
      Average runtime : 0.689635 ns/op
      Ops per second : 1450041796 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.73585

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 874719564 ns
      Average runtime : 2.60687 ns/op
      Ops per second : 383602120 op/s
      -- Other function --
      Total time : 231684611 ns
      Average runtime : 0.690474 ns/op
      Ops per second : 1448280395 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.77548

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 77208415 ns 
           Average runtime : 2.71985 ns/op 
           Ops per second  : 367667695 op/s 
      -- Other function --
           Total time      : 21144775 ns 
           Average runtime : 0.744874 ns/op 
           Ops per second  : 1342508492 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.65142 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 320212566 ns
      Average runtime : 1.96957 ns/op
      Ops per second : 507726233 op/s
      -- Other function --
      Total time : 123837687 ns
      Average runtime : 0.761702 ns/op
      Ops per second : 1312850101 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.58574

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 253062703 ns
      Average runtime : 1.85023 ns/op
      Ops per second : 540474429 op/s
      -- Other function --
      Total time : 103206381 ns
      Average runtime : 0.754576 ns/op
      Ops per second : 1325246740 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.45201

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1701151327 ns
      Average runtime : 2.53491 ns/op
      Ops per second : 394490807 op/s
      -- Other function --
      Total time : 463740234 ns
      Average runtime : 0.691027 ns/op
      Ops per second : 1447121709 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.66833

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 679149333 ns
      Average runtime : 2.02402 ns/op
      Ops per second : 494065537 op/s
      -- Other function --
      Total time : 232130412 ns
      Average runtime : 0.691803 ns/op
      Ops per second : 1445499006 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.92572

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 77964518 ns 
           Average runtime : 2.74648 ns/op 
           Ops per second  : 364102039 op/s 
      -- Other function --
           Total time      : 21155883 ns 
           Average runtime : 0.745266 ns/op 
           Ops per second  : 1341803601 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 3.68524 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 375781576 ns
      Average runtime : 2.31136 ns/op
      Ops per second : 432645798 op/s
      -- Other function --
      Total time : 124129802 ns
      Average runtime : 0.763498 ns/op
      Ops per second : 1309760568 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.02733

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 300568603 ns
      Average runtime : 2.19756 ns/op
      Ops per second : 455050589 op/s
      -- Other function --
      Total time : 104166341 ns
      Average runtime : 0.761595 ns/op
      Ops per second : 1313033737 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.88547

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1593512941 ns
      Average runtime : 2.37452 ns/op
      Ops per second : 421137816 op/s
      -- Other function --
      Total time : 464727743 ns
      Average runtime : 0.692498 ns/op
      Ops per second : 1444046692 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.42892

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 751317505 ns
      Average runtime : 2.2391 ns/op
      Ops per second : 446607829 op/s
      -- Other function --
      Total time : 232300619 ns
      Average runtime : 0.69231 ns/op
      Ops per second : 1444439887 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.23425

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 87738851 ns 
           Average runtime : 3.09081 ns/op 
           Ops per second  : 323540138 op/s 
      -- Other function --
           Total time      : 21856120 ns 
           Average runtime : 0.769933 ns/op 
           Ops per second  : 1298814245 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 4.01438 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 428989950 ns
      Average runtime : 2.63863 ns/op
      Ops per second : 378983983 op/s
      -- Other function --
      Total time : 124951986 ns
      Average runtime : 0.768555 ns/op
      Ops per second : 1301142344 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.43324

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 355788859 ns
      Average runtime : 2.60129 ns/op
      Ops per second : 384424403 op/s
      -- Other function --
      Total time : 103175496 ns
      Average runtime : 0.754351 ns/op
      Ops per second : 1325643445 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.44839

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2337332887 ns
      Average runtime : 3.4829 ns/op
      Ops per second : 287117236 op/s
      -- Other function --
      Total time : 465847128 ns
      Average runtime : 0.694166 ns/op
      Ops per second : 1440576789 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.01738

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 1520084799 ns
      Average runtime : 4.53021 ns/op
      Ops per second : 220740500 op/s
      -- Other function --
      Total time : 569647339 ns
      Average runtime : 1.69768 ns/op
      Ops per second : 589038615 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.66847

    • rintf16_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 257277385 ns 
           Average runtime : 3.17626 ns/op 
           Ops per second  : 314835289 op/s 
      -- Other function --
           Total time      : 63321533 ns 
           Average runtime : 0.781747 ns/op 
           Ops per second  : 1279185707 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 4.06303 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 335552084 ns
      Average runtime : 2.66311 ns/op
      Ops per second : 375500573 op/s
      -- Other function --
      Total time : 94867391 ns
      Average runtime : 0.752916 ns/op
      Ops per second : 1328169760 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.53706

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 183753214 ns
      Average runtime : 2.91672 ns/op
      Ops per second : 342851145 op/s
      -- Other function --
      Total time : 50308675 ns
      Average runtime : 0.79855 ns/op
      Ops per second : 1252269116 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.65252

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 134261271 ns
      Average runtime : 3.28107 ns/op
      Ops per second : 304778881 op/s
      -- Other function --
      Total time : 29078491 ns
      Average runtime : 0.710618 ns/op
      Ops per second : 1407225705 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.6172

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 68278606 ns
      Average runtime : 3.33718 ns/op
      Ops per second : 299654623 op/s
      -- Other function --
      Total time : 14260823 ns
      Average runtime : 0.69701 ns/op
      Ops per second : 1434699806 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.78784

    • rintf16_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 184858073 ns 
           Average runtime : 2.2822 ns/op 
           Ops per second  : 438173993 op/s 
      -- Other function --
           Total time      : 63636190 ns 
           Average runtime : 0.785632 ns/op 
           Ops per second  : 1272860615 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.90492 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 299003052 ns
      Average runtime : 2.37304 ns/op
      Ops per second : 421400380 op/s
      -- Other function --
      Total time : 95121460 ns
      Average runtime : 0.754932 ns/op
      Ops per second : 1324622225 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.14338

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 137340088 ns
      Average runtime : 2.18 ns/op
      Ops per second : 458715302 op/s
      -- Other function --
      Total time : 49999715 ns
      Average runtime : 0.793646 ns/op
      Ops per second : 1260007182 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.74682

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 119231771 ns
      Average runtime : 2.91378 ns/op
      Ops per second : 343197116 op/s
      -- Other function --
      Total time : 29070190 ns
      Average runtime : 0.710415 ns/op
      Ops per second : 1407627538 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.10151

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 68828532 ns
      Average runtime : 3.36405 ns/op
      Ops per second : 297260444 op/s
      -- Other function --
      Total time : 14418905 ns
      Average runtime : 0.704736 ns/op
      Ops per second : 1418970441 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.77349

    • rintf16_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 190556885 ns 
           Average runtime : 2.35255 ns/op 
           Ops per second  : 425069920 op/s 
      -- Other function --
           Total time      : 63988770 ns 
           Average runtime : 0.789985 ns/op 
           Ops per second  : 1265847116 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.97797 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 299843913 ns
      Average runtime : 2.37971 ns/op
      Ops per second : 420218635 op/s
      -- Other function --
      Total time : 95078532 ns
      Average runtime : 0.754592 ns/op
      Ops per second : 1325220292 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.15364

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 137693115 ns
      Average runtime : 2.1856 ns/op
      Ops per second : 457539216 op/s
      -- Other function --
      Total time : 50551189 ns
      Average runtime : 0.8024 ns/op
      Ops per second : 1246261487 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.72384

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 152883260 ns
      Average runtime : 3.73615 ns/op
      Ops per second : 267655203 op/s
      -- Other function --
      Total time : 28777058 ns
      Average runtime : 0.703252 ns/op
      Ops per second : 1421966067 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.31268

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 59489543 ns
      Average runtime : 2.9076 ns/op
      Ops per second : 343925990 op/s
      -- Other function --
      Total time : 14405396 ns
      Average runtime : 0.704076 ns/op
      Ops per second : 1420301114 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.12967

    • rintf16_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 272872233 ns 
           Average runtime : 3.36879 ns/op 
           Ops per second  : 296842222 op/s 
      -- Other function --
           Total time      : 62935954 ns 
           Average runtime : 0.776987 ns/op 
           Ops per second  : 1287022677 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 4.33571 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 377779298 ns
      Average runtime : 2.99825 ns/op
      Ops per second : 333528069 op/s
      -- Other function --
      Total time : 95021281 ns
      Average runtime : 0.754137 ns/op
      Ops per second : 1326018747 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.97573

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 188956624 ns
      Average runtime : 2.99931 ns/op
      Ops per second : 333409851 op/s
      -- Other function --
      Total time : 50633911 ns
      Average runtime : 0.803713 ns/op
      Ops per second : 1244225436 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.73182

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 157035645 ns
      Average runtime : 3.83763 ns/op
      Ops per second : 260577781 op/s
      -- Other function --
      Total time : 29021158 ns
      Average runtime : 0.709217 ns/op
      Ops per second : 1410005762 op/s
      -- Average runtime ratio --
      Mine / Other's : 5.41107

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 60140910 ns
      Average runtime : 2.93944 ns/op
      Ops per second : 340201037 op/s
      -- Other function --
      Total time : 14957926 ns
      Average runtime : 0.731081 ns/op
      Ops per second : 1367836690 op/s
      -- Average runtime ratio --
      Mine / Other's : 4.02067

@overmighty
Copy link
Member Author

overmighty commented Jul 12, 2024

After:

  • Intel Core i7-13700H, Clang 18
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 53376062 ns 
           Average runtime : 1.8803 ns/op 
           Ops per second  : 531830917 op/s 
      -- Other function --
           Total time      : 30648492 ns 
           Average runtime : 1.07966 ns/op 
           Ops per second  : 926213270 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.74156 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 232859058 ns
      Average runtime : 1.43227 ns/op
      Ops per second : 698191950 op/s
      -- Other function --
      Total time : 180459933 ns
      Average runtime : 1.10997 ns/op
      Ops per second : 900921979 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.29036

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 160896054 ns
      Average runtime : 1.17637 ns/op
      Ops per second : 850076285 op/s
      -- Other function --
      Total time : 151452021 ns
      Average runtime : 1.10732 ns/op
      Ops per second : 903084152 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.06236

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1353788119 ns
      Average runtime : 2.0173 ns/op
      Ops per second : 495711663 op/s
      -- Other function --
      Total time : 708360124 ns
      Average runtime : 1.05554 ns/op
      Ops per second : 947383311 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.91116

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 454095483 ns
      Average runtime : 1.35331 ns/op
      Ops per second : 738928909 op/s
      -- Other function --
      Total time : 354160441 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947435797 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.28217

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 49715344 ns 
           Average runtime : 1.75134 ns/op 
           Ops per second  : 570991523 op/s 
      -- Other function --
           Total time      : 30640083 ns 
           Average runtime : 1.07937 ns/op 
           Ops per second  : 926467464 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.62256 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 225155039 ns
      Average runtime : 1.38488 ns/op
      Ops per second : 722081640 op/s
      -- Other function --
      Total time : 180444638 ns
      Average runtime : 1.10988 ns/op
      Ops per second : 900998343 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.24778

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 191436852 ns
      Average runtime : 1.39966 ns/op
      Ops per second : 714459721 op/s
      -- Other function --
      Total time : 151441845 ns
      Average runtime : 1.10724 ns/op
      Ops per second : 903144834 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.26409

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1171643781 ns
      Average runtime : 1.74589 ns/op
      Ops per second : 572775250 op/s
      -- Other function --
      Total time : 708286094 ns
      Average runtime : 1.05543 ns/op
      Ops per second : 947482331 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.6542

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442706285 ns
      Average runtime : 1.31937 ns/op
      Ops per second : 757938821 op/s
      -- Other function --
      Total time : 354141639 ns
      Average runtime : 1.05542 ns/op
      Ops per second : 947486098 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.25008

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 57533634 ns 
           Average runtime : 2.02676 ns/op 
           Ops per second  : 493399043 op/s 
      -- Other function --
           Total time      : 57217611 ns 
           Average runtime : 2.01562 ns/op 
           Ops per second  : 496124174 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00552 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 269950927 ns
      Average runtime : 1.66042 ns/op
      Ops per second : 602258794 op/s
      -- Other function --
      Total time : 265881092 ns
      Average runtime : 1.63538 ns/op
      Ops per second : 611477554 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01531

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190524876 ns
      Average runtime : 1.39299 ns/op
      Ops per second : 717879590 op/s
      -- Other function --
      Total time : 298262215 ns
      Average runtime : 2.1807 ns/op
      Ops per second : 458569383 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.638783

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1671684259 ns
      Average runtime : 2.491 ns/op
      Ops per second : 401444564 op/s
      -- Other function --
      Total time : 1086705673 ns
      Average runtime : 1.61932 ns/op
      Ops per second : 617543992 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.5383

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 531215784 ns
      Average runtime : 1.58315 ns/op
      Ops per second : 631653444 op/s
      -- Other function --
      Total time : 531245907 ns
      Average runtime : 1.58324 ns/op
      Ops per second : 631617628 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999943

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 60001883 ns 
           Average runtime : 2.11371 ns/op 
           Ops per second  : 473102485 op/s 
      -- Other function --
           Total time      : 30641725 ns 
           Average runtime : 1.07943 ns/op 
           Ops per second  : 926417817 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.95818 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 316905808 ns
      Average runtime : 1.94923 ns/op
      Ops per second : 513024109 op/s
      -- Other function --
      Total time : 183273493 ns
      Average runtime : 1.12728 ns/op
      Ops per second : 887091293 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.72914

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 192004029 ns
      Average runtime : 1.40381 ns/op
      Ops per second : 712349218 op/s
      -- Other function --
      Total time : 155992501 ns
      Average runtime : 1.14051 ns/op
      Ops per second : 876798045 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.23085

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1832947430 ns
      Average runtime : 2.7313 ns/op
      Ops per second : 366125372 op/s
      -- Other function --
      Total time : 711973660 ns
      Average runtime : 1.06092 ns/op
      Ops per second : 942574982 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.57446

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 668975595 ns
      Average runtime : 1.9937 ns/op
      Ops per second : 501579254 op/s
      -- Other function --
      Total time : 356036386 ns
      Average runtime : 1.06107 ns/op
      Ops per second : 942443787 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.87895

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 61593478 ns 
           Average runtime : 2.16977 ns/op 
           Ops per second  : 460877367 op/s 
      -- Other function --
           Total time      : 30649629 ns 
           Average runtime : 1.0797 ns/op 
           Ops per second  : 926178910 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.0096 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 225251482 ns
      Average runtime : 1.38548 ns/op
      Ops per second : 721772476 op/s
      -- Other function --
      Total time : 180518137 ns
      Average runtime : 1.11033 ns/op
      Ops per second : 900631497 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.24781

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 191607265 ns
      Average runtime : 1.4009 ns/op
      Ops per second : 713824290 op/s
      -- Other function --
      Total time : 151468703 ns
      Average runtime : 1.10744 ns/op
      Ops per second : 902984691 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.265

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1089672153 ns
      Average runtime : 1.62374 ns/op
      Ops per second : 615862815 op/s
      -- Other function --
      Total time : 708348008 ns
      Average runtime : 1.05552 ns/op
      Ops per second : 947399516 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.53833

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 442846375 ns
      Average runtime : 1.31979 ns/op
      Ops per second : 757699055 op/s
      -- Other function --
      Total time : 354188025 ns
      Average runtime : 1.05556 ns/op
      Ops per second : 947362012 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.25031

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 83813835 ns 
           Average runtime : 2.95254 ns/op 
           Ops per second  : 338691577 op/s 
      -- Other function --
           Total time      : 30642667 ns 
           Average runtime : 1.07946 ns/op 
           Ops per second  : 926389338 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.73521 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 432659000 ns
      Average runtime : 2.66121 ns/op
      Ops per second : 375770109 op/s
      -- Other function --
      Total time : 180462007 ns
      Average runtime : 1.10999 ns/op
      Ops per second : 900911625 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.39751

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 375336703 ns
      Average runtime : 2.74422 ns/op
      Ops per second : 364403264 op/s
      -- Other function --
      Total time : 151493884 ns
      Average runtime : 1.10763 ns/op
      Ops per second : 902834598 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.47758

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1989397961 ns
      Average runtime : 2.96444 ns/op
      Ops per second : 337332486 op/s
      -- Other function --
      Total time : 708348431 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947398950 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.80851

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 872879767 ns
      Average runtime : 2.60139 ns/op
      Ops per second : 384410651 op/s
      -- Other function --
      Total time : 354135469 ns
      Average runtime : 1.05541 ns/op
      Ops per second : 947502606 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.46482

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 75710011 ns 
           Average runtime : 2.66706 ns/op 
           Ops per second  : 374944338 op/s 
      -- Other function --
           Total time      : 30650998 ns 
           Average runtime : 1.07975 ns/op 
           Ops per second  : 926137543 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.47006 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 313268185 ns
      Average runtime : 1.92685 ns/op
      Ops per second : 518981268 op/s
      -- Other function --
      Total time : 180473087 ns
      Average runtime : 1.11005 ns/op
      Ops per second : 900856314 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.73581

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 298541885 ns
      Average runtime : 2.18273 ns/op
      Ops per second : 458139801 op/s
      -- Other function --
      Total time : 151425868 ns
      Average runtime : 1.10712 ns/op
      Ops per second : 903240125 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.97153

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1771428497 ns
      Average runtime : 2.63963 ns/op
      Ops per second : 378840332 op/s
      -- Other function --
      Total time : 708336969 ns
      Average runtime : 1.0555 ns/op
      Ops per second : 947414280 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.50082

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 624695978 ns
      Average runtime : 1.86173 ns/op
      Ops per second : 537132127 op/s
      -- Other function --
      Total time : 354158375 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947441324 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.76388

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 75040461 ns 
           Average runtime : 2.64347 ns/op 
           Ops per second  : 378289786 op/s 
      -- Other function --
           Total time      : 30642377 ns 
           Average runtime : 1.07944 ns/op 
           Ops per second  : 926398105 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.44891 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 332185276 ns
      Average runtime : 2.0432 ns/op
      Ops per second : 489426629 op/s
      -- Other function --
      Total time : 181131132 ns
      Average runtime : 1.1141 ns/op
      Ops per second : 897583525 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.83394

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 325967647 ns
      Average runtime : 2.38325 ns/op
      Ops per second : 419593543 op/s
      -- Other function --
      Total time : 151847880 ns
      Average runtime : 1.11021 ns/op
      Ops per second : 900729862 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.14667

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1713094465 ns
      Average runtime : 2.5527 ns/op
      Ops per second : 391740545 op/s
      -- Other function --
      Total time : 708342182 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947407308 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.41845

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 687658679 ns
      Average runtime : 2.04938 ns/op
      Ops per second : 487951785 op/s
      -- Other function --
      Total time : 354167776 ns
      Average runtime : 1.0555 ns/op
      Ops per second : 947416175 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.94161

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 84919231 ns 
           Average runtime : 2.99148 ns/op 
           Ops per second  : 334282819 op/s 
      -- Other function --
           Total time      : 30645045 ns 
           Average runtime : 1.07954 ns/op 
           Ops per second  : 926317451 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.77106 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 441818915 ns
      Average runtime : 2.71754 ns/op
      Ops per second : 367979537 op/s
      -- Other function --
      Total time : 181104306 ns
      Average runtime : 1.11394 ns/op
      Ops per second : 897716479 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.43958

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 357928595 ns
      Average runtime : 2.61694 ns/op
      Ops per second : 382126272 op/s
      -- Other function --
      Total time : 151930408 ns
      Average runtime : 1.11081 ns/op
      Ops per second : 900240589 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.35587

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 2570084666 ns
      Average runtime : 3.82973 ns/op
      Ops per second : 261115351 op/s
      -- Other function --
      Total time : 708353944 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947391576 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.62825

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 916574529 ns
      Average runtime : 2.73161 ns/op
      Ops per second : 366085102 op/s
      -- Other function --
      Total time : 354153423 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947454572 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.58807

  • Intel Core i7-13700H, Clang 18, -march=native
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30641345 ns 
           Average runtime : 1.07941 ns/op 
           Ops per second  : 926429306 op/s 
      -- Other function --
           Total time      : 30641860 ns 
           Average runtime : 1.07943 ns/op 
           Ops per second  : 926413735 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999983 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180218669 ns
      Average runtime : 1.10849 ns/op
      Ops per second : 902128069 op/s
      -- Other function --
      Total time : 180449671 ns
      Average runtime : 1.10991 ns/op
      Ops per second : 900973213 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99872

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 152956953 ns
      Average runtime : 1.11832 ns/op
      Ops per second : 894198774 op/s
      -- Other function --
      Total time : 151416159 ns
      Average runtime : 1.10705 ns/op
      Ops per second : 903298042 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01018

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708354521 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947390805 op/s
      -- Other function --
      Total time : 708290697 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947476174 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00009

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354189977 ns
      Average runtime : 1.05557 ns/op
      Ops per second : 947356790 op/s
      -- Other function --
      Total time : 354131346 ns
      Average runtime : 1.05539 ns/op
      Ops per second : 947513638 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00017

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30640544 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926453525 op/s 
      -- Other function --
           Total time      : 30641413 ns 
           Average runtime : 1.07942 ns/op 
           Ops per second  : 926427250 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999972 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 181627175 ns
      Average runtime : 1.11715 ns/op
      Ops per second : 895132129 op/s
      -- Other function --
      Total time : 180457465 ns
      Average runtime : 1.10996 ns/op
      Ops per second : 900934300 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00648

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 154166161 ns
      Average runtime : 1.12716 ns/op
      Ops per second : 887185093 op/s
      -- Other function --
      Total time : 151418846 ns
      Average runtime : 1.10707 ns/op
      Ops per second : 903282012 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01814

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708273380 ns
      Average runtime : 1.05541 ns/op
      Ops per second : 947499339 op/s
      -- Other function --
      Total time : 708341539 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947408168 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999904

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354159323 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947438788 op/s
      -- Other function --
      Total time : 354195460 ns
      Average runtime : 1.05558 ns/op
      Ops per second : 947342125 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999898

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30649247 ns 
           Average runtime : 1.07969 ns/op 
           Ops per second  : 926190454 op/s 
      -- Other function --
           Total time      : 56988855 ns 
           Average runtime : 2.00757 ns/op 
           Ops per second  : 498115640 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.537811 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180910164 ns
      Average runtime : 1.11274 ns/op
      Ops per second : 898679855 op/s
      -- Other function --
      Total time : 265984046 ns
      Average runtime : 1.63602 ns/op
      Ops per second : 611240871 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.680154

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 153714307 ns
      Average runtime : 1.12386 ns/op
      Ops per second : 889793036 op/s
      -- Other function --
      Total time : 305636514 ns
      Average runtime : 2.23461 ns/op
      Ops per second : 447505169 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.502932

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708342318 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947407126 op/s
      -- Other function --
      Total time : 1086585839 ns
      Average runtime : 1.61914 ns/op
      Ops per second : 617612098 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.651897

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354192879 ns
      Average runtime : 1.05558 ns/op
      Ops per second : 947349029 op/s
      -- Other function --
      Total time : 531209673 ns
      Average runtime : 1.58313 ns/op
      Ops per second : 631660711 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.666767

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30644517 ns 
           Average runtime : 1.07952 ns/op 
           Ops per second  : 926333412 op/s 
      -- Other function --
           Total time      : 30640463 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926455974 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00013 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 178873205 ns
      Average runtime : 1.10021 ns/op
      Ops per second : 908913774 op/s
      -- Other function --
      Total time : 183325831 ns
      Average runtime : 1.1276 ns/op
      Ops per second : 886838036 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.975712

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 152235443 ns
      Average runtime : 1.11304 ns/op
      Ops per second : 898436772 op/s
      -- Other function --
      Total time : 155903063 ns
      Average runtime : 1.13986 ns/op
      Ops per second : 877301044 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.976475

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708293728 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947472119 op/s
      -- Other function --
      Total time : 711948968 ns
      Average runtime : 1.06089 ns/op
      Ops per second : 942607672 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994866

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354133354 ns
      Average runtime : 1.0554 ns/op
      Ops per second : 947508265 op/s
      -- Other function --
      Total time : 355982221 ns
      Average runtime : 1.06091 ns/op
      Ops per second : 942587186 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994806

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30646693 ns 
           Average runtime : 1.0796 ns/op 
           Ops per second  : 926267640 op/s 
      -- Other function --
           Total time      : 30649587 ns 
           Average runtime : 1.0797 ns/op 
           Ops per second  : 926180179 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999906 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 179653407 ns
      Average runtime : 1.10501 ns/op
      Ops per second : 904966528 op/s
      -- Other function --
      Total time : 181294633 ns
      Average runtime : 1.11511 ns/op
      Ops per second : 896774037 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.990947

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 153178605 ns
      Average runtime : 1.11994 ns/op
      Ops per second : 892904854 op/s
      -- Other function --
      Total time : 152563567 ns
      Average runtime : 1.11544 ns/op
      Ops per second : 896504471 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00403

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708335538 ns
      Average runtime : 1.0555 ns/op
      Ops per second : 947416194 op/s
      -- Other function --
      Total time : 714591763 ns
      Average runtime : 1.06482 ns/op
      Ops per second : 939121600 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.991245

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354146182 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947473944 op/s
      -- Other function --
      Total time : 356484831 ns
      Average runtime : 1.06241 ns/op
      Ops per second : 941258227 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99344

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30639381 ns 
           Average runtime : 1.07935 ns/op 
           Ops per second  : 926488691 op/s 
      -- Other function --
           Total time      : 30648411 ns 
           Average runtime : 1.07967 ns/op 
           Ops per second  : 926215718 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999706 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 179626193 ns
      Average runtime : 1.10485 ns/op
      Ops per second : 905103633 op/s
      -- Other function --
      Total time : 180541038 ns
      Average runtime : 1.11048 ns/op
      Ops per second : 900517255 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994933

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 153329566 ns
      Average runtime : 1.12105 ns/op
      Ops per second : 892025742 op/s
      -- Other function --
      Total time : 151492119 ns
      Average runtime : 1.10761 ns/op
      Ops per second : 902845117 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01213

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708277940 ns
      Average runtime : 1.05542 ns/op
      Ops per second : 947493239 op/s
      -- Other function --
      Total time : 708307506 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947453689 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999959

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354154563 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947451522 op/s
      -- Other function --
      Total time : 354185388 ns
      Average runtime : 1.05556 ns/op
      Ops per second : 947369065 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999913

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30640482 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926455399 op/s 
      -- Other function --
           Total time      : 30641017 ns 
           Average runtime : 1.0794 ns/op 
           Ops per second  : 926439223 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999982 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180191240 ns
      Average runtime : 1.10832 ns/op
      Ops per second : 902265393 op/s
      -- Other function --
      Total time : 180552763 ns
      Average runtime : 1.11054 ns/op
      Ops per second : 900458776 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997997

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 153781675 ns
      Average runtime : 1.12434 ns/op
      Ops per second : 889403240 op/s
      -- Other function --
      Total time : 151415840 ns
      Average runtime : 1.10705 ns/op
      Ops per second : 903299945 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01562

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 709114687 ns
      Average runtime : 1.05666 ns/op
      Ops per second : 946375208 op/s
      -- Other function --
      Total time : 708350186 ns
      Average runtime : 1.05552 ns/op
      Ops per second : 947396603 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00107

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354138466 ns
      Average runtime : 1.05541 ns/op
      Ops per second : 947494588 op/s
      -- Other function --
      Total time : 354140206 ns
      Average runtime : 1.05542 ns/op
      Ops per second : 947489932 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999995

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30641661 ns 
           Average runtime : 1.07942 ns/op 
           Ops per second  : 926419752 op/s 
      -- Other function --
           Total time      : 30641019 ns 
           Average runtime : 1.0794 ns/op 
           Ops per second  : 926439163 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00002 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180689608 ns
      Average runtime : 1.11138 ns/op
      Ops per second : 899776815 op/s
      -- Other function --
      Total time : 180454540 ns
      Average runtime : 1.10994 ns/op
      Ops per second : 900948903 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.0013

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 153904116 ns
      Average runtime : 1.12524 ns/op
      Ops per second : 888695660 op/s
      -- Other function --
      Total time : 151444413 ns
      Average runtime : 1.10726 ns/op
      Ops per second : 903129519 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01624

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708302390 ns
      Average runtime : 1.05545 ns/op
      Ops per second : 947460533 op/s
      -- Other function --
      Total time : 708358478 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947385512 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99992

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354133011 ns
      Average runtime : 1.05539 ns/op
      Ops per second : 947509183 op/s
      -- Other function --
      Total time : 354192681 ns
      Average runtime : 1.05557 ns/op
      Ops per second : 947349558 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999831

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30643491 ns 
           Average runtime : 1.07949 ns/op 
           Ops per second  : 926364427 op/s 
      -- Other function --
           Total time      : 30640598 ns 
           Average runtime : 1.07939 ns/op 
           Ops per second  : 926451892 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00009 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 179434289 ns
      Average runtime : 1.10367 ns/op
      Ops per second : 906071637 op/s
      -- Other function --
      Total time : 180444251 ns
      Average runtime : 1.10988 ns/op
      Ops per second : 901000276 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994403

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 152973302 ns
      Average runtime : 1.11844 ns/op
      Ops per second : 894103207 op/s
      -- Other function --
      Total time : 151476044 ns
      Average runtime : 1.10749 ns/op
      Ops per second : 902940929 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00988

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 708298936 ns
      Average runtime : 1.05545 ns/op
      Ops per second : 947465153 op/s
      -- Other function --
      Total time : 708482540 ns
      Average runtime : 1.05572 ns/op
      Ops per second : 947219616 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999741

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354178509 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947387465 op/s
      -- Other function --
      Total time : 354153473 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947454438 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00007

  • Intel Core i7-13700H, GCC 14
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30754477 ns 
           Average runtime : 1.0834 ns/op 
           Ops per second  : 923021386 op/s 
      -- Other function --
           Total time      : 30985161 ns 
           Average runtime : 1.09152 ns/op 
           Ops per second  : 916149507 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.992555 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180498000 ns
      Average runtime : 1.11021 ns/op
      Ops per second : 900731974 op/s
      -- Other function --
      Total time : 181119957 ns
      Average runtime : 1.11403 ns/op
      Ops per second : 897638905 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996566

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156299027 ns
      Average runtime : 1.14275 ns/op
      Ops per second : 875078512 op/s
      -- Other function --
      Total time : 156569267 ns
      Average runtime : 1.14473 ns/op
      Ops per second : 873568118 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998274

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 711086217 ns
      Average runtime : 1.0596 ns/op
      Ops per second : 943751325 op/s
      -- Other function --
      Total time : 709785836 ns
      Average runtime : 1.05766 ns/op
      Ops per second : 945480349 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00183

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354153913 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947453261 op/s
      -- Other function --
      Total time : 442678573 ns
      Average runtime : 1.31929 ns/op
      Ops per second : 757986269 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.800025

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30703619 ns 
           Average runtime : 1.08161 ns/op 
           Ops per second  : 924550294 op/s 
      -- Other function --
           Total time      : 30981319 ns 
           Average runtime : 1.09139 ns/op 
           Ops per second  : 916263119 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.991037 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 181178122 ns
      Average runtime : 1.11439 ns/op
      Ops per second : 897350729 op/s
      -- Other function --
      Total time : 180966165 ns
      Average runtime : 1.11309 ns/op
      Ops per second : 898401753 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00117

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156320259 ns
      Average runtime : 1.14291 ns/op
      Ops per second : 874959655 op/s
      -- Other function --
      Total time : 156591903 ns
      Average runtime : 1.1449 ns/op
      Ops per second : 873441840 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998265

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 713041818 ns
      Average runtime : 1.06252 ns/op
      Ops per second : 941162976 op/s
      -- Other function --
      Total time : 708305544 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947456314 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00669

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354183591 ns
      Average runtime : 1.05555 ns/op
      Ops per second : 947373871 op/s
      -- Other function --
      Total time : 443598615 ns
      Average runtime : 1.32203 ns/op
      Ops per second : 756414174 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.798433

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 67476151 ns 
           Average runtime : 2.37701 ns/op 
           Ops per second  : 420697380 op/s 
      -- Other function --
           Total time      : 31113545 ns 
           Average runtime : 1.09605 ns/op 
           Ops per second  : 912369194 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.16871 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 324687537 ns
      Average runtime : 1.99709 ns/op
      Ops per second : 500728551 op/s
      -- Other function --
      Total time : 183756704 ns
      Average runtime : 1.13025 ns/op
      Ops per second : 884758577 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.76694

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190763471 ns
      Average runtime : 1.39474 ns/op
      Ops per second : 716981711 op/s
      -- Other function --
      Total time : 157715375 ns
      Average runtime : 1.15311 ns/op
      Ops per second : 867219952 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.20954

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1809577760 ns
      Average runtime : 2.69648 ns/op
      Ops per second : 370853673 op/s
      -- Other function --
      Total time : 713205362 ns
      Average runtime : 1.06276 ns/op
      Ops per second : 940947160 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.53725

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 698825363 ns
      Average runtime : 2.08266 ns/op
      Ops per second : 480154696 op/s
      -- Other function --
      Total time : 449138871 ns
      Average runtime : 1.33854 ns/op
      Ops per second : 747083589 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.55592

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30734275 ns 
           Average runtime : 1.08269 ns/op 
           Ops per second  : 923628099 op/s 
      -- Other function --
           Total time      : 30980571 ns 
           Average runtime : 1.09136 ns/op 
           Ops per second  : 916285242 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.99205 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180630417 ns
      Average runtime : 1.11102 ns/op
      Ops per second : 900071664 op/s
      -- Other function --
      Total time : 180992038 ns
      Average runtime : 1.11325 ns/op
      Ops per second : 898273326 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998002

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156440048 ns
      Average runtime : 1.14379 ns/op
      Ops per second : 874289683 op/s
      -- Other function --
      Total time : 156901293 ns
      Average runtime : 1.14716 ns/op
      Ops per second : 871719521 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99706

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 712982125 ns
      Average runtime : 1.06243 ns/op
      Ops per second : 941241773 op/s
      -- Other function --
      Total time : 708316115 ns
      Average runtime : 1.05547 ns/op
      Ops per second : 947442174 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00659

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354171724 ns
      Average runtime : 1.05551 ns/op
      Ops per second : 947405615 op/s
      -- Other function --
      Total time : 444147945 ns
      Average runtime : 1.32366 ns/op
      Ops per second : 755478627 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.797418

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30731705 ns 
           Average runtime : 1.0826 ns/op 
           Ops per second  : 923705339 op/s 
      -- Other function --
           Total time      : 30980644 ns 
           Average runtime : 1.09137 ns/op 
           Ops per second  : 916283083 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.991965 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180403355 ns
      Average runtime : 1.10963 ns/op
      Ops per second : 901204525 op/s
      -- Other function --
      Total time : 180619410 ns
      Average runtime : 1.11096 ns/op
      Ops per second : 900126514 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998804

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156434704 ns
      Average runtime : 1.14375 ns/op
      Ops per second : 874319549 op/s
      -- Other function --
      Total time : 156876823 ns
      Average runtime : 1.14698 ns/op
      Ops per second : 871855493 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997182

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 712483560 ns
      Average runtime : 1.06169 ns/op
      Ops per second : 941900413 op/s
      -- Other function --
      Total time : 708316434 ns
      Average runtime : 1.05548 ns/op
      Ops per second : 947441747 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00589

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354175772 ns
      Average runtime : 1.05553 ns/op
      Ops per second : 947394786 op/s
      -- Other function --
      Total time : 442693205 ns
      Average runtime : 1.31933 ns/op
      Ops per second : 757961216 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.800048

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30680727 ns 
           Average runtime : 1.0808 ns/op 
           Ops per second  : 925240135 op/s 
      -- Other function --
           Total time      : 30982411 ns 
           Average runtime : 1.09142 ns/op 
           Ops per second  : 916230825 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.990262 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180509190 ns
      Average runtime : 1.11027 ns/op
      Ops per second : 900676137 op/s
      -- Other function --
      Total time : 180632996 ns
      Average runtime : 1.11103 ns/op
      Ops per second : 900058813 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999314

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156328396 ns
      Average runtime : 1.14296 ns/op
      Ops per second : 874914113 op/s
      -- Other function --
      Total time : 156549222 ns
      Average runtime : 1.14458 ns/op
      Ops per second : 873679972 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998589

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 709273839 ns
      Average runtime : 1.0569 ns/op
      Ops per second : 946162854 op/s
      -- Other function --
      Total time : 708313598 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947445540 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00135

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354146119 ns
      Average runtime : 1.05543 ns/op
      Ops per second : 947474113 op/s
      -- Other function --
      Total time : 442840827 ns
      Average runtime : 1.31976 ns/op
      Ops per second : 757708547 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.799714

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30640572 ns 
           Average runtime : 1.07938 ns/op 
           Ops per second  : 926452678 op/s 
      -- Other function --
           Total time      : 30980325 ns 
           Average runtime : 1.09135 ns/op 
           Ops per second  : 916292517 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.989033 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180272778 ns
      Average runtime : 1.10882 ns/op
      Ops per second : 901857295 op/s
      -- Other function --
      Total time : 180961050 ns
      Average runtime : 1.11305 ns/op
      Ops per second : 898427147 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996196

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156235341 ns
      Average runtime : 1.14228 ns/op
      Ops per second : 875435219 op/s
      -- Other function --
      Total time : 156619427 ns
      Average runtime : 1.14509 ns/op
      Ops per second : 873288343 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997547

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 712979187 ns
      Average runtime : 1.06242 ns/op
      Ops per second : 941245652 op/s
      -- Other function --
      Total time : 710110068 ns
      Average runtime : 1.05814 ns/op
      Ops per second : 945048648 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00404

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354194917 ns
      Average runtime : 1.05558 ns/op
      Ops per second : 947343578 op/s
      -- Other function --
      Total time : 441845355 ns
      Average runtime : 1.3168 ns/op
      Ops per second : 759415655 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.801626

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30806157 ns 
           Average runtime : 1.08522 ns/op 
           Ops per second  : 921472938 op/s 
      -- Other function --
           Total time      : 30981532 ns 
           Average runtime : 1.0914 ns/op 
           Ops per second  : 916256820 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.994339 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 180290534 ns
      Average runtime : 1.10893 ns/op
      Ops per second : 901768475 op/s
      -- Other function --
      Total time : 180715332 ns
      Average runtime : 1.11154 ns/op
      Ops per second : 899648735 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997649

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 156312426 ns
      Average runtime : 1.14285 ns/op
      Ops per second : 875003501 op/s
      -- Other function --
      Total time : 156752351 ns
      Average runtime : 1.14607 ns/op
      Ops per second : 872547806 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997194

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 713015908 ns
      Average runtime : 1.06248 ns/op
      Ops per second : 941197177 op/s
      -- Other function --
      Total time : 709935954 ns
      Average runtime : 1.05789 ns/op
      Ops per second : 945280424 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00434

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354145565 ns
      Average runtime : 1.05544 ns/op
      Ops per second : 947475595 op/s
      -- Other function --
      Total time : 445566856 ns
      Average runtime : 1.32789 ns/op
      Ops per second : 753072800 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.79482

  • Intel Core i7-13700H, GCC 14, -march=native
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30980652 ns 
           Average runtime : 1.09137 ns/op 
           Ops per second  : 916282846 op/s 
      -- Other function --
           Total time      : 30746710 ns 
           Average runtime : 1.08312 ns/op 
           Ops per second  : 923254553 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00761 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 184435696 ns
      Average runtime : 1.13443 ns/op
      Ops per second : 881501377 op/s
      -- Other function --
      Total time : 183712370 ns
      Average runtime : 1.12998 ns/op
      Ops per second : 884972089 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00394

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189721711 ns
      Average runtime : 1.38712 ns/op
      Ops per second : 720918651 op/s
      -- Other function --
      Total time : 189162536 ns
      Average runtime : 1.38303 ns/op
      Ops per second : 723049726 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00296

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 978353364 ns
      Average runtime : 1.45786 ns/op
      Ops per second : 685936783 op/s
      -- Other function --
      Total time : 712846713 ns
      Average runtime : 1.06222 ns/op
      Ops per second : 941420571 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.37246

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 356526755 ns
      Average runtime : 1.06253 ns/op
      Ops per second : 941147544 op/s
      -- Other function --
      Total time : 356049485 ns
      Average runtime : 1.06111 ns/op
      Ops per second : 942409114 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00134

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 31027826 ns 
           Average runtime : 1.09303 ns/op 
           Ops per second  : 914889750 op/s 
      -- Other function --
           Total time      : 30645817 ns 
           Average runtime : 1.07957 ns/op 
           Ops per second  : 926294117 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01247 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183580015 ns
      Average runtime : 1.12917 ns/op
      Ops per second : 885610124 op/s
      -- Other function --
      Total time : 183732419 ns
      Average runtime : 1.1301 ns/op
      Ops per second : 884875521 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999171

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189475398 ns
      Average runtime : 1.38532 ns/op
      Ops per second : 721855826 op/s
      -- Other function --
      Total time : 189122019 ns
      Average runtime : 1.38273 ns/op
      Ops per second : 723204631 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00187

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 999373754 ns
      Average runtime : 1.48918 ns/op
      Ops per second : 671509089 op/s
      -- Other function --
      Total time : 712694503 ns
      Average runtime : 1.062 ns/op
      Ops per second : 941621630 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40225

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354149440 ns
      Average runtime : 1.05545 ns/op
      Ops per second : 947465228 op/s
      -- Other function --
      Total time : 355143538 ns
      Average runtime : 1.05841 ns/op
      Ops per second : 944813136 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997201

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 31027600 ns 
           Average runtime : 1.09302 ns/op 
           Ops per second  : 914896414 op/s 
      -- Other function --
           Total time      : 30668286 ns 
           Average runtime : 1.08036 ns/op 
           Ops per second  : 925615471 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01172 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183668735 ns
      Average runtime : 1.12971 ns/op
      Ops per second : 885182336 op/s
      -- Other function --
      Total time : 184223914 ns
      Average runtime : 1.13313 ns/op
      Ops per second : 882514742 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996986

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189320593 ns
      Average runtime : 1.38419 ns/op
      Ops per second : 722446078 op/s
      -- Other function --
      Total time : 193211308 ns
      Average runtime : 1.41263 ns/op
      Ops per second : 707898111 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.979863

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1002099314 ns
      Average runtime : 1.49324 ns/op
      Ops per second : 669682685 op/s
      -- Other function --
      Total time : 713207865 ns
      Average runtime : 1.06276 ns/op
      Ops per second : 940943857 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40506

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354523180 ns
      Average runtime : 1.05656 ns/op
      Ops per second : 946466405 op/s
      -- Other function --
      Total time : 354153722 ns
      Average runtime : 1.05546 ns/op
      Ops per second : 947453772 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00104

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30981628 ns 
           Average runtime : 1.0914 ns/op 
           Ops per second  : 916253981 op/s 
      -- Other function --
           Total time      : 30665356 ns 
           Average runtime : 1.08026 ns/op 
           Ops per second  : 925703911 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01031 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183802286 ns
      Average runtime : 1.13053 ns/op
      Ops per second : 884539161 op/s
      -- Other function --
      Total time : 183720971 ns
      Average runtime : 1.13003 ns/op
      Ops per second : 884930659 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00044

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189357985 ns
      Average runtime : 1.38446 ns/op
      Ops per second : 722303419 op/s
      -- Other function --
      Total time : 189121664 ns
      Average runtime : 1.38273 ns/op
      Ops per second : 723205988 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00125

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1000762495 ns
      Average runtime : 1.49125 ns/op
      Ops per second : 670577248 op/s
      -- Other function --
      Total time : 712711191 ns
      Average runtime : 1.06202 ns/op
      Ops per second : 941599582 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40416

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 354144979 ns
      Average runtime : 1.05543 ns/op
      Ops per second : 947477163 op/s
      -- Other function --
      Total time : 355528134 ns
      Average runtime : 1.05956 ns/op
      Ops per second : 943791075 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99611

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30980242 ns 
           Average runtime : 1.09136 ns/op 
           Ops per second  : 916294972 op/s 
      -- Other function --
           Total time      : 30640616 ns 
           Average runtime : 1.07939 ns/op 
           Ops per second  : 926451348 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01109 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183688545 ns
      Average runtime : 1.12984 ns/op
      Ops per second : 885086873 op/s
      -- Other function --
      Total time : 183571166 ns
      Average runtime : 1.12912 ns/op
      Ops per second : 885652815 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00064

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189768005 ns
      Average runtime : 1.38746 ns/op
      Ops per second : 720742782 op/s
      -- Other function --
      Total time : 189068167 ns
      Average runtime : 1.38235 ns/op
      Ops per second : 723410620 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00371

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1000862478 ns
      Average runtime : 1.49141 ns/op
      Ops per second : 670510259 op/s
      -- Other function --
      Total time : 712825177 ns
      Average runtime : 1.0622 ns/op
      Ops per second : 941449013 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40408

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 356498070 ns
      Average runtime : 1.06245 ns/op
      Ops per second : 941223272 op/s
      -- Other function --
      Total time : 355365250 ns
      Average runtime : 1.05908 ns/op
      Ops per second : 944223668 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00319

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 31011400 ns 
           Average runtime : 1.09244 ns/op 
           Ops per second  : 915374346 op/s 
      -- Other function --
           Total time      : 30650549 ns 
           Average runtime : 1.07973 ns/op 
           Ops per second  : 926151110 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01177 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183568625 ns
      Average runtime : 1.12909 ns/op
      Ops per second : 885665074 op/s
      -- Other function --
      Total time : 183479091 ns
      Average runtime : 1.12854 ns/op
      Ops per second : 886097261 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00048

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189360440 ns
      Average runtime : 1.38447 ns/op
      Ops per second : 722294054 op/s
      -- Other function --
      Total time : 189122942 ns
      Average runtime : 1.38274 ns/op
      Ops per second : 723201101 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00125

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1001235398 ns
      Average runtime : 1.49195 ns/op
      Ops per second : 670260521 op/s
      -- Other function --
      Total time : 712860708 ns
      Average runtime : 1.06224 ns/op
      Ops per second : 941402089 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40453

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 355554171 ns
      Average runtime : 1.05963 ns/op
      Ops per second : 943721962 op/s
      -- Other function --
      Total time : 356051942 ns
      Average runtime : 1.06111 ns/op
      Ops per second : 942402611 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.998601

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30996068 ns 
           Average runtime : 1.0919 ns/op 
           Ops per second  : 915827130 op/s 
      -- Other function --
           Total time      : 30641975 ns 
           Average runtime : 1.07943 ns/op 
           Ops per second  : 926410259 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01155 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183517924 ns
      Average runtime : 1.12878 ns/op
      Ops per second : 885909759 op/s
      -- Other function --
      Total time : 183429696 ns
      Average runtime : 1.12824 ns/op
      Ops per second : 886335874 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00048

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 190135520 ns
      Average runtime : 1.39014 ns/op
      Ops per second : 719349651 op/s
      -- Other function --
      Total time : 189122069 ns
      Average runtime : 1.38273 ns/op
      Ops per second : 723204439 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00535

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1000915962 ns
      Average runtime : 1.49148 ns/op
      Ops per second : 670474430 op/s
      -- Other function --
      Total time : 712787823 ns
      Average runtime : 1.06213 ns/op
      Ops per second : 941498351 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40422

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 355729501 ns
      Average runtime : 1.06015 ns/op
      Ops per second : 943256825 op/s
      -- Other function --
      Total time : 356021289 ns
      Average runtime : 1.06102 ns/op
      Ops per second : 942483751 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99918

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30990845 ns 
           Average runtime : 1.09173 ns/op 
           Ops per second  : 915981477 op/s 
      -- Other function --
           Total time      : 30641889 ns 
           Average runtime : 1.07943 ns/op 
           Ops per second  : 926412859 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01139 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 184057295 ns
      Average runtime : 1.1321 ns/op
      Ops per second : 883313644 op/s
      -- Other function --
      Total time : 183498704 ns
      Average runtime : 1.12866 ns/op
      Ops per second : 886002551 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00304

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 189881508 ns
      Average runtime : 1.38829 ns/op
      Ops per second : 720311953 op/s
      -- Other function --
      Total time : 189097959 ns
      Average runtime : 1.38256 ns/op
      Ops per second : 723296648 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00414

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 999818565 ns
      Average runtime : 1.48985 ns/op
      Ops per second : 671210341 op/s
      -- Other function --
      Total time : 712789429 ns
      Average runtime : 1.06214 ns/op
      Ops per second : 941496229 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40268

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 356185988 ns
      Average runtime : 1.06152 ns/op
      Ops per second : 942047950 op/s
      -- Other function --
      Total time : 356036986 ns
      Average runtime : 1.06107 ns/op
      Ops per second : 942442198 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00042

  • Google Tensor G3, Clang 17
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20661866 ns 
           Average runtime : 0.727863 ns/op 
           Ops per second  : 1373885591 op/s 
      -- Other function --
           Total time      : 20681519 ns 
           Average runtime : 0.728555 ns/op 
           Ops per second  : 1372580031 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.99905 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 118330770 ns
      Average runtime : 0.72783 ns/op
      Ops per second : 1373947959 op/s
      -- Other function --
      Total time : 122749267 ns
      Average runtime : 0.755007 ns/op
      Ops per second : 1324491167 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.964004

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 100834758 ns
      Average runtime : 0.737237 ns/op
      Ops per second : 1356416405 op/s
      -- Other function --
      Total time : 102191325 ns
      Average runtime : 0.747155 ns/op
      Ops per second : 1338410280 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.986725

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 460831829 ns
      Average runtime : 0.686693 ns/op
      Ops per second : 1456254793 op/s
      -- Other function --
      Total time : 460617350 ns
      Average runtime : 0.686373 ns/op
      Ops per second : 1456932874 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00047

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 230601563 ns
      Average runtime : 0.687246 ns/op
      Ops per second : 1455082418 op/s
      -- Other function --
      Total time : 230411947 ns
      Average runtime : 0.686681 ns/op
      Ops per second : 1456279869 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00082

    • ceilf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 62139974 ns 
           Average runtime : 0.76716 ns/op 
           Ops per second  : 1303508752 op/s 
      -- Other function --
           Total time      : 62187175 ns 
           Average runtime : 0.767743 ns/op 
           Ops per second  : 1302519369 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999241 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94031616 ns
      Average runtime : 0.746283 ns/op
      Ops per second : 1339974844 op/s
      -- Other function --
      Total time : 93939860 ns
      Average runtime : 0.745554 ns/op
      Ops per second : 1341283668 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00098

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 49895874 ns
      Average runtime : 0.791998 ns/op
      Ops per second : 1262629451 op/s
      -- Other function --
      Total time : 49879679 ns
      Average runtime : 0.791741 ns/op
      Ops per second : 1263039403 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00032

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28497152 ns
      Average runtime : 0.696411 ns/op
      Ops per second : 1435932966 op/s
      -- Other function --
      Total time : 28335368 ns
      Average runtime : 0.692458 ns/op
      Ops per second : 1444131588 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00571

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14290771 ns
      Average runtime : 0.698474 ns/op
      Ops per second : 1431693223 op/s
      -- Other function --
      Total time : 14192301 ns
      Average runtime : 0.693661 ns/op
      Ops per second : 1441626696 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00694

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20748576 ns 
           Average runtime : 0.730917 ns/op 
           Ops per second  : 1368144011 op/s 
      -- Other function --
           Total time      : 20807780 ns 
           Average runtime : 0.733003 ns/op 
           Ops per second  : 1364251256 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.997155 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 118437378 ns
      Average runtime : 0.728485 ns/op
      Ops per second : 1372711239 op/s
      -- Other function --
      Total time : 122611816 ns
      Average runtime : 0.754161 ns/op
      Ops per second : 1325975956 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.965954

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 100537557 ns
      Average runtime : 0.735064 ns/op
      Ops per second : 1360426134 op/s
      -- Other function --
      Total time : 102123495 ns
      Average runtime : 0.746659 ns/op
      Ops per second : 1339299247 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.98447

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 460819947 ns
      Average runtime : 0.686675 ns/op
      Ops per second : 1456292342 op/s
      -- Other function --
      Total time : 461095419 ns
      Average runtime : 0.687086 ns/op
      Ops per second : 1455422310 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999403

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 231086263 ns
      Average runtime : 0.688691 ns/op
      Ops per second : 1452030404 op/s
      -- Other function --
      Total time : 230490763 ns
      Average runtime : 0.686916 ns/op
      Ops per second : 1455781896 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00258

    • floorf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 90933594 ns 
           Average runtime : 1.12264 ns/op 
           Ops per second  : 890759909 op/s 
      -- Other function --
           Total time      : 61762492 ns 
           Average runtime : 0.7625 ns/op 
           Ops per second  : 1311475579 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47231 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137318196 ns
      Average runtime : 1.08983 ns/op
      Ops per second : 917576866 op/s
      -- Other function --
      Total time : 94324625 ns
      Average runtime : 0.748608 ns/op
      Ops per second : 1335812360 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.4558

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 72139567 ns
      Average runtime : 1.14507 ns/op
      Ops per second : 873307154 op/s
      -- Other function --
      Total time : 49410888 ns
      Average runtime : 0.7843 ns/op
      Ops per second : 1275022622 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45999

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42380452 ns
      Average runtime : 1.03569 ns/op
      Ops per second : 965539489 op/s
      -- Other function --
      Total time : 28329387 ns
      Average runtime : 0.692312 ns/op
      Ops per second : 1444436478 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49599

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21186279 ns
      Average runtime : 1.0355 ns/op
      Ops per second : 965719369 op/s
      -- Other function --
      Total time : 14171671 ns
      Average runtime : 0.692653 ns/op
      Ops per second : 1443725302 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49497

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30667847 ns 
           Average runtime : 1.08035 ns/op 
           Ops per second  : 925628721 op/s 
      -- Other function --
           Total time      : 30676270 ns 
           Average runtime : 1.08064 ns/op 
           Ops per second  : 925374564 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.999725 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174796061 ns
      Average runtime : 1.07514 ns/op
      Ops per second : 930114323 op/s
      -- Other function --
      Total time : 172935791 ns
      Average runtime : 1.06369 ns/op
      Ops per second : 940119561 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01076

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148073731 ns
      Average runtime : 1.08262 ns/op
      Ops per second : 923687943 op/s
      -- Other function --
      Total time : 146359090 ns
      Average runtime : 1.07008 ns/op
      Ops per second : 934509226 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01172

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693319621 ns
      Average runtime : 1.03313 ns/op
      Ops per second : 967935335 op/s
      -- Other function --
      Total time : 691032715 ns
      Average runtime : 1.02972 ns/op
      Ops per second : 971138624 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00331

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346651490 ns
      Average runtime : 1.0331 ns/op
      Ops per second : 967958568 op/s
      -- Other function --
      Total time : 345724935 ns
      Average runtime : 1.03034 ns/op
      Ops per second : 970552731 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00268

    • roundf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 91039755 ns 
           Average runtime : 1.12395 ns/op 
           Ops per second  : 889721199 op/s 
      -- Other function --
           Total time      : 62060344 ns 
           Average runtime : 0.766177 ns/op 
           Ops per second  : 1305181292 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.46696 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137670613 ns
      Average runtime : 1.09262 ns/op
      Ops per second : 915228001 op/s
      -- Other function --
      Total time : 93818115 ns
      Average runtime : 0.744588 ns/op
      Ops per second : 1343024212 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46742

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 71702556 ns
      Average runtime : 1.13814 ns/op
      Ops per second : 878629766 op/s
      -- Other function --
      Total time : 49411580 ns
      Average runtime : 0.784311 ns/op
      Ops per second : 1275004766 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45113

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42487427 ns
      Average runtime : 1.0383 ns/op
      Ops per second : 963108450 op/s
      -- Other function --
      Total time : 28330974 ns
      Average runtime : 0.69235 ns/op
      Ops per second : 1444355566 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49968

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21250244 ns
      Average runtime : 1.03862 ns/op
      Ops per second : 962812474 op/s
      -- Other function --
      Total time : 14164184 ns
      Average runtime : 0.692287 ns/op
      Ops per second : 1444488436 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50028

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 50052979 ns 
           Average runtime : 1.76323 ns/op 
           Ops per second  : 567139869 op/s 
      -- Other function --
           Total time      : 30610962 ns 
           Average runtime : 1.07834 ns/op 
           Ops per second  : 927348836 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.63513 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 231744914 ns
      Average runtime : 1.42542 ns/op
      Ops per second : 701548600 op/s
      -- Other function --
      Total time : 173046427 ns
      Average runtime : 1.06437 ns/op
      Ops per second : 939518502 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.33921

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 196892660 ns
      Average runtime : 1.43955 ns/op
      Ops per second : 694662360 op/s
      -- Other function --
      Total time : 146511841 ns
      Average runtime : 1.0712 ns/op
      Ops per second : 933534921 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.34387

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1521385173 ns
      Average runtime : 2.26704 ns/op
      Ops per second : 441103654 op/s
      -- Other function --
      Total time : 691421590 ns
      Average runtime : 1.0303 ns/op
      Ops per second : 970592428 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.20037

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 465912598 ns
      Average runtime : 1.38853 ns/op
      Ops per second : 720187179 op/s
      -- Other function --
      Total time : 346082845 ns
      Average runtime : 1.03141 ns/op
      Ops per second : 969549010 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.34625

    • roundevenf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 148231526 ns 
           Average runtime : 1.83002 ns/op 
           Ops per second  : 546442461 op/s 
      -- Other function --
           Total time      : 61997680 ns 
           Average runtime : 0.765403 ns/op 
           Ops per second  : 1306500501 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.39092 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 183519856 ns
      Average runtime : 1.45651 ns/op
      Ops per second : 686574209 op/s
      -- Other function --
      Total time : 93739298 ns
      Average runtime : 0.743963 ns/op
      Ops per second : 1344153441 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.95777

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 92814372 ns
      Average runtime : 1.47324 ns/op
      Ops per second : 678774188 op/s
      -- Other function --
      Total time : 49772502 ns
      Average runtime : 0.79004 ns/op
      Ops per second : 1265759153 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.86477

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 101805013 ns
      Average runtime : 2.4879 ns/op
      Ops per second : 401944843 op/s
      -- Other function --
      Total time : 28766602 ns
      Average runtime : 0.702996 ns/op
      Ops per second : 1422482919 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.539

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 30118449 ns
      Average runtime : 1.47206 ns/op
      Ops per second : 679317849 op/s
      -- Other function --
      Total time : 14466146 ns
      Average runtime : 0.707045 ns/op
      Ops per second : 1414336617 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.082

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30610433 ns 
           Average runtime : 1.07832 ns/op 
           Ops per second  : 927364862 op/s 
      -- Other function --
           Total time      : 30698689 ns 
           Average runtime : 1.08143 ns/op 
           Ops per second  : 924698771 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.997125 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 173327311 ns
      Average runtime : 1.0661 ns/op
      Ops per second : 937995974 op/s
      -- Other function --
      Total time : 174251912 ns
      Average runtime : 1.07179 ns/op
      Ops per second : 933018858 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994694

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 146473348 ns
      Average runtime : 1.07092 ns/op
      Ops per second : 933780253 op/s
      -- Other function --
      Total time : 147273844 ns
      Average runtime : 1.07677 ns/op
      Ops per second : 928704760 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.994565

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 691227011 ns
      Average runtime : 1.03001 ns/op
      Ops per second : 970865648 op/s
      -- Other function --
      Total time : 693416179 ns
      Average runtime : 1.03327 ns/op
      Ops per second : 967800550 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996843

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 345452108 ns
      Average runtime : 1.02953 ns/op
      Ops per second : 971319242 op/s
      -- Other function --
      Total time : 347076416 ns
      Average runtime : 1.03437 ns/op
      Ops per second : 966773495 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99532

    • truncf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 90599040 ns 
           Average runtime : 1.11851 ns/op 
           Ops per second  : 894049208 op/s 
      -- Other function --
           Total time      : 61812256 ns 
           Average runtime : 0.763114 ns/op 
           Ops per second  : 1310419732 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.46571 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137308513 ns
      Average runtime : 1.08975 ns/op
      Ops per second : 917641574 op/s
      -- Other function --
      Total time : 93795329 ns
      Average runtime : 0.744407 ns/op
      Ops per second : 1343350477 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46392

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 72442871 ns
      Average runtime : 1.14989 ns/op
      Ops per second : 869650790 op/s
      -- Other function --
      Total time : 49481161 ns
      Average runtime : 0.785415 ns/op
      Ops per second : 1273211839 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46405

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42388631 ns
      Average runtime : 1.03589 ns/op
      Ops per second : 965353186 op/s
      -- Other function --
      Total time : 28330078 ns
      Average runtime : 0.692328 ns/op
      Ops per second : 1444401247 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49624

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21185507 ns
      Average runtime : 1.03546 ns/op
      Ops per second : 965754560 op/s
      -- Other function --
      Total time : 14163656 ns
      Average runtime : 0.692261 ns/op
      Ops per second : 1444542284 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49577

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30609741 ns 
           Average runtime : 1.0783 ns/op 
           Ops per second  : 927385827 op/s 
      -- Other function --
           Total time      : 20724080 ns 
           Average runtime : 0.730054 ns/op 
           Ops per second  : 1369761166 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47701 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174746176 ns
      Average runtime : 1.07483 ns/op
      Ops per second : 930379844 op/s
      -- Other function --
      Total time : 122657919 ns
      Average runtime : 0.754445 ns/op
      Ops per second : 1325477566 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42466

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148176514 ns
      Average runtime : 1.08337 ns/op
      Ops per second : 923047224 op/s
      -- Other function --
      Total time : 102386190 ns
      Average runtime : 0.74858 ns/op
      Ops per second : 1335862971 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44723

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693230551 ns
      Average runtime : 1.03299 ns/op
      Ops per second : 968059701 op/s
      -- Other function --
      Total time : 460731975 ns
      Average runtime : 0.686544 ns/op
      Ops per second : 1456570406 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50463

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346347291 ns
      Average runtime : 1.0322 ns/op
      Ops per second : 968808732 op/s
      -- Other function --
      Total time : 230321818 ns
      Average runtime : 0.686413 ns/op
      Ops per second : 1456849737 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50375

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30627400 ns 
           Average runtime : 1.07892 ns/op 
           Ops per second  : 926851120 op/s 
      -- Other function --
           Total time      : 20677206 ns 
           Average runtime : 0.728403 ns/op 
           Ops per second  : 1372866334 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.48122 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174727458 ns
      Average runtime : 1.07471 ns/op
      Ops per second : 930479512 op/s
      -- Other function --
      Total time : 122737264 ns
      Average runtime : 0.754933 ns/op
      Ops per second : 1324620695 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42359

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148074666 ns
      Average runtime : 1.08262 ns/op
      Ops per second : 923682110 op/s
      -- Other function --
      Total time : 102214397 ns
      Average runtime : 0.747324 ns/op
      Ops per second : 1338108172 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44867

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693211752 ns
      Average runtime : 1.03297 ns/op
      Ops per second : 968085953 op/s
      -- Other function --
      Total time : 460933757 ns
      Average runtime : 0.686845 ns/op
      Ops per second : 1455932766 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50393

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 347294637 ns
      Average runtime : 1.03502 ns/op
      Ops per second : 966166028 op/s
      -- Other function --
      Total time : 230407430 ns
      Average runtime : 0.686668 ns/op
      Ops per second : 1456308418 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50731

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30647013 ns 
           Average runtime : 1.07961 ns/op 
           Ops per second  : 926257968 op/s 
      -- Other function --
           Total time      : 20732544 ns 
           Average runtime : 0.730352 ns/op 
           Ops per second  : 1369201965 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47821 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174623901 ns
      Average runtime : 1.07408 ns/op
      Ops per second : 931031313 op/s
      -- Other function --
      Total time : 122716878 ns
      Average runtime : 0.754808 ns/op
      Ops per second : 1324840744 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42298

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148051188 ns
      Average runtime : 1.08245 ns/op
      Ops per second : 923828588 op/s
      -- Other function --
      Total time : 102079794 ns
      Average runtime : 0.74634 ns/op
      Ops per second : 1339872609 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45035

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693209310 ns
      Average runtime : 1.03296 ns/op
      Ops per second : 968089363 op/s
      -- Other function --
      Total time : 460725301 ns
      Average runtime : 0.686534 ns/op
      Ops per second : 1456591505 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.5046

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346374634 ns
      Average runtime : 1.03228 ns/op
      Ops per second : 968732254 op/s
      -- Other function --
      Total time : 230717814 ns
      Average runtime : 0.687593 ns/op
      Ops per second : 1454349251 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50129

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20912841 ns 
           Average runtime : 0.736704 ns/op 
           Ops per second  : 1357397591 op/s 
      -- Other function --
           Total time      : 20869913 ns 
           Average runtime : 0.735192 ns/op 
           Ops per second  : 1360189666 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00206 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 119989380 ns
      Average runtime : 0.738031 ns/op
      Ops per second : 1354955913 op/s
      -- Other function --
      Total time : 123383464 ns
      Average runtime : 0.758908 ns/op
      Ops per second : 1317683218 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.972492

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 101831990 ns
      Average runtime : 0.744528 ns/op
      Ops per second : 1343133135 op/s
      -- Other function --
      Total time : 102743815 ns
      Average runtime : 0.751194 ns/op
      Ops per second : 1331213173 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.991125

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 466398601 ns
      Average runtime : 0.694988 ns/op
      Ops per second : 1438873441 op/s
      -- Other function --
      Total time : 466107178 ns
      Average runtime : 0.694554 ns/op
      Ops per second : 1439773064 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00063

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 233027344 ns
      Average runtime : 0.694476 ns/op
      Ops per second : 1439935220 op/s
      -- Other function --
      Total time : 233247762 ns
      Average runtime : 0.695133 ns/op
      Ops per second : 1438574488 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999055

    • rintf16_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 62530396 ns 
           Average runtime : 0.77198 ns/op 
           Ops per second  : 1295370014 op/s 
      -- Other function --
           Total time      : 62278931 ns 
           Average runtime : 0.768876 ns/op 
           Ops per second  : 1300600358 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00404 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94651041 ns
      Average runtime : 0.751199 ns/op
      Ops per second : 1331205644 op/s
      -- Other function --
      Total time : 94259480 ns
      Average runtime : 0.748091 ns/op
      Ops per second : 1336735572 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00415

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 49614380 ns
      Average runtime : 0.78753 ns/op
      Ops per second : 1269793152 op/s
      -- Other function --
      Total time : 49649089 ns
      Average runtime : 0.788081 ns/op
      Ops per second : 1268905457 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999301

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28886597 ns
      Average runtime : 0.705929 ns/op
      Ops per second : 1416573921 op/s
      -- Other function --
      Total time : 28662190 ns
      Average runtime : 0.700445 ns/op
      Ops per second : 1427664808 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00783

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14287191 ns
      Average runtime : 0.698299 ns/op
      Ops per second : 1432051968 op/s
      -- Other function --
      Total time : 14182698 ns
      Average runtime : 0.693191 ns/op
      Ops per second : 1442602810 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00737

    • rintf16_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 62692586 ns 
           Average runtime : 0.773983 ns/op 
           Ops per second  : 1292018804 op/s 
      -- Other function --
           Total time      : 62418782 ns 
           Average runtime : 0.770602 ns/op 
           Ops per second  : 1297686327 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00439 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94759277 ns
      Average runtime : 0.752058 ns/op
      Ops per second : 1329685113 op/s
      -- Other function --
      Total time : 94850667 ns
      Average runtime : 0.752783 ns/op
      Ops per second : 1328403942 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999036

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 49777873 ns
      Average runtime : 0.790125 ns/op
      Ops per second : 1265622578 op/s
      -- Other function --
      Total time : 49704142 ns
      Average runtime : 0.788955 ns/op
      Ops per second : 1267500000 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00148

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28668375 ns
      Average runtime : 0.700596 ns/op
      Ops per second : 1427356799 op/s
      -- Other function --
      Total time : 28610921 ns
      Average runtime : 0.699192 ns/op
      Ops per second : 1430223095 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00201

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14265625 ns
      Average runtime : 0.697245 ns/op
      Ops per second : 1434216867 op/s
      -- Other function --
      Total time : 14162964 ns
      Average runtime : 0.692227 ns/op
      Ops per second : 1444612864 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00725

    • rintf16_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 63029785 ns 
           Average runtime : 0.778145 ns/op 
           Ops per second  : 1285106715 op/s 
      -- Other function --
           Total time      : 61815430 ns 
           Average runtime : 0.763153 ns/op 
           Ops per second  : 1310352447 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01964 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 95200114 ns
      Average runtime : 0.755556 ns/op
      Ops per second : 1323527826 op/s
      -- Other function --
      Total time : 95504720 ns
      Average runtime : 0.757974 ns/op
      Ops per second : 1319306522 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996811

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50787598 ns
      Average runtime : 0.806152 ns/op
      Ops per second : 1240460318 op/s
      -- Other function --
      Total time : 49455607 ns
      Average runtime : 0.78501 ns/op
      Ops per second : 1273869715 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.02693

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28891154 ns
      Average runtime : 0.70604 ns/op
      Ops per second : 1416350485 op/s
      -- Other function --
      Total time : 28963989 ns
      Average runtime : 0.70782 ns/op
      Ops per second : 1412788825 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.997485

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14264771 ns
      Average runtime : 0.697203 ns/op
      Ops per second : 1434302730 op/s
      -- Other function --
      Total time : 14354126 ns
      Average runtime : 0.70157 ns/op
      Ops per second : 1425374139 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.993775

    • rintf16_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 63283814 ns 
           Average runtime : 0.781282 ns/op 
           Ops per second  : 1279948139 op/s 
      -- Other function --
           Total time      : 62353190 ns 
           Average runtime : 0.769792 ns/op 
           Ops per second  : 1299051419 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01493 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 95210083 ns
      Average runtime : 0.755636 ns/op
      Ops per second : 1323389246 op/s
      -- Other function --
      Total time : 94305339 ns
      Average runtime : 0.748455 ns/op
      Ops per second : 1336085542 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00959

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50855509 ns
      Average runtime : 0.80723 ns/op
      Ops per second : 1238803843 op/s
      -- Other function --
      Total time : 49571329 ns
      Average runtime : 0.786846 ns/op
      Ops per second : 1270895924 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.02591

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28770386 ns
      Average runtime : 0.703089 ns/op
      Ops per second : 1422295828 op/s
      -- Other function --
      Total time : 28492798 ns
      Average runtime : 0.696305 ns/op
      Ops per second : 1436152391 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00974

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14340372 ns
      Average runtime : 0.700898 ns/op
      Ops per second : 1426741230 op/s
      -- Other function --
      Total time : 14541300 ns
      Average runtime : 0.710718 ns/op
      Ops per second : 1407026882 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.986182

  • Google Tensor G3, Clang 17, -mcpu=cortex-x3
    • ceilf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20743448 ns 
           Average runtime : 0.730737 ns/op 
           Ops per second  : 1368482231 op/s 
      -- Other function --
           Total time      : 20821249 ns 
           Average runtime : 0.733477 ns/op 
           Ops per second  : 1363368739 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.996263 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 118448283 ns
      Average runtime : 0.728552 ns/op
      Ops per second : 1372584860 op/s
      -- Other function --
      Total time : 122815105 ns
      Average runtime : 0.755412 ns/op
      Ops per second : 1323781142 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.964444

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 100840617 ns
      Average runtime : 0.73728 ns/op
      Ops per second : 1356337595 op/s
      -- Other function --
      Total time : 102323324 ns
      Average runtime : 0.74812 ns/op
      Ops per second : 1336683706 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.98551

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 461506998 ns
      Average runtime : 0.687699 ns/op
      Ops per second : 1454124342 op/s
      -- Other function --
      Total time : 460720744 ns
      Average runtime : 0.686527 ns/op
      Ops per second : 1456605913 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00171

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 230434774 ns
      Average runtime : 0.686749 ns/op
      Ops per second : 1456135609 op/s
      -- Other function --
      Total time : 230737061 ns
      Average runtime : 0.68765 ns/op
      Ops per second : 1454227936 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99869

    • ceilf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 61945598 ns 
           Average runtime : 0.76476 ns/op 
           Ops per second  : 1307598967 op/s 
      -- Other function --
           Total time      : 61811321 ns 
           Average runtime : 0.763103 ns/op 
           Ops per second  : 1310439555 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00217 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94883056 ns
      Average runtime : 0.75304 ns/op
      Ops per second : 1327950482 op/s
      -- Other function --
      Total time : 94746664 ns
      Average runtime : 0.751958 ns/op
      Ops per second : 1329862125 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00144

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50246419 ns
      Average runtime : 0.797562 ns/op
      Ops per second : 1253820695 op/s
      -- Other function --
      Total time : 49830281 ns
      Average runtime : 0.790957 ns/op
      Ops per second : 1264291485 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00835

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28572225 ns
      Average runtime : 0.698246 ns/op
      Ops per second : 1432160078 op/s
      -- Other function --
      Total time : 28351034 ns
      Average runtime : 0.692841 ns/op
      Ops per second : 1443333601 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.0078

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14242716 ns
      Average runtime : 0.696125 ns/op
      Ops per second : 1436523764 op/s
      -- Other function --
      Total time : 14166463 ns
      Average runtime : 0.692398 ns/op
      Ops per second : 1444256057 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00538

    • floorf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30612753 ns 
           Average runtime : 1.07841 ns/op 
           Ops per second  : 927294582 op/s 
      -- Other function --
           Total time      : 20679525 ns 
           Average runtime : 0.728485 ns/op 
           Ops per second  : 1372712380 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.48034 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 175160482 ns
      Average runtime : 1.07738 ns/op
      Ops per second : 928179222 op/s
      -- Other function --
      Total time : 122448731 ns
      Average runtime : 0.753158 ns/op
      Ops per second : 1327741975 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.43048

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148102865 ns
      Average runtime : 1.08283 ns/op
      Ops per second : 923506240 op/s
      -- Other function --
      Total time : 102094197 ns
      Average runtime : 0.746445 ns/op
      Ops per second : 1339683586 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45065

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693308268 ns
      Average runtime : 1.03311 ns/op
      Ops per second : 967951185 op/s
      -- Other function --
      Total time : 460741333 ns
      Average runtime : 0.686558 ns/op
      Ops per second : 1456540822 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50477

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346340332 ns
      Average runtime : 1.03217 ns/op
      Ops per second : 968828198 op/s
      -- Other function --
      Total time : 230581258 ns
      Average runtime : 0.687186 ns/op
      Ops per second : 1455210553 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.50203

    • floorf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 90977499 ns 
           Average runtime : 1.12318 ns/op 
           Ops per second  : 890330036 op/s 
      -- Other function --
           Total time      : 61952800 ns 
           Average runtime : 0.764849 ns/op 
           Ops per second  : 1307446959 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.4685 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137809896 ns
      Average runtime : 1.09373 ns/op
      Ops per second : 914302990 op/s
      -- Other function --
      Total time : 92775268 ns
      Average runtime : 0.736312 ns/op
      Ops per second : 1358120571 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48542

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 71696737 ns
      Average runtime : 1.13804 ns/op
      Ops per second : 878701076 op/s
      -- Other function --
      Total time : 49411743 ns
      Average runtime : 0.784313 ns/op
      Ops per second : 1275000560 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.45101

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42456218 ns
      Average runtime : 1.03754 ns/op
      Ops per second : 963816419 op/s
      -- Other function --
      Total time : 28336344 ns
      Average runtime : 0.692482 ns/op
      Ops per second : 1444081847 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.4983

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21230550 ns
      Average runtime : 1.03766 ns/op
      Ops per second : 963705603 op/s
      -- Other function --
      Total time : 14165934 ns
      Average runtime : 0.692372 ns/op
      Ops per second : 1444309990 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.4987

    • roundf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30602172 ns 
           Average runtime : 1.07803 ns/op 
           Ops per second  : 927615203 op/s 
      -- Other function --
           Total time      : 30538696 ns 
           Average runtime : 1.0758 ns/op 
           Ops per second  : 929543291 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00208 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 173519165 ns
      Average runtime : 1.06728 ns/op
      Ops per second : 936958865 op/s
      -- Other function --
      Total time : 173017008 ns
      Average runtime : 1.06419 ns/op
      Ops per second : 939678254 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.0029

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 147138469 ns
      Average runtime : 1.07578 ns/op
      Ops per second : 929559216 op/s
      -- Other function --
      Total time : 146031250 ns
      Average runtime : 1.06768 ns/op
      Ops per second : 936607198 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00758

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 691343751 ns
      Average runtime : 1.03018 ns/op
      Ops per second : 970701708 op/s
      -- Other function --
      Total time : 691142334 ns
      Average runtime : 1.02988 ns/op
      Ops per second : 970984596 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00029

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 345717366 ns
      Average runtime : 1.03032 ns/op
      Ops per second : 970573980 op/s
      -- Other function --
      Total time : 345548422 ns
      Average runtime : 1.02981 ns/op
      Ops per second : 971048509 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00049

    • roundf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 91018677 ns 
           Average runtime : 1.12369 ns/op 
           Ops per second  : 889927239 op/s 
      -- Other function --
           Total time      : 61885620 ns 
           Average runtime : 0.76402 ns/op 
           Ops per second  : 1308866260 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.47076 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137205160 ns
      Average runtime : 1.08893 ns/op
      Ops per second : 918332809 op/s
      -- Other function --
      Total time : 93906453 ns
      Average runtime : 0.745289 ns/op
      Ops per second : 1341760826 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.46108

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 72103719 ns
      Average runtime : 1.1445 ns/op
      Ops per second : 873741339 op/s
      -- Other function --
      Total time : 49888062 ns
      Average runtime : 0.791874 ns/op
      Ops per second : 1262827166 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44531

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42311930 ns
      Average runtime : 1.03402 ns/op
      Ops per second : 967103131 op/s
      -- Other function --
      Total time : 28352539 ns
      Average runtime : 0.692877 ns/op
      Ops per second : 1443256986 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49235

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21177694 ns
      Average runtime : 1.03508 ns/op
      Ops per second : 966110852 op/s
      -- Other function --
      Total time : 14186890 ns
      Average runtime : 0.693396 ns/op
      Ops per second : 1442176544 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49277

    • roundevenf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 50054687 ns 
           Average runtime : 1.76329 ns/op 
           Ops per second  : 567120517 op/s 
      -- Other function --
           Total time      : 30536295 ns 
           Average runtime : 1.07571 ns/op 
           Ops per second  : 929616379 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.63919 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 235285563 ns
      Average runtime : 1.4472 ns/op
      Ops per second : 690991482 op/s
      -- Other function --
      Total time : 173610148 ns
      Average runtime : 1.06784 ns/op
      Ops per second : 936467838 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.35525

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 151941080 ns
      Average runtime : 1.11089 ns/op
      Ops per second : 900177358 op/s
      -- Other function --
      Total time : 146238688 ns
      Average runtime : 1.0692 ns/op
      Ops per second : 935278631 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.03899

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 1569088217 ns
      Average runtime : 2.33812 ns/op
      Ops per second : 427693327 op/s
      -- Other function --
      Total time : 691985962 ns
      Average runtime : 1.03114 ns/op
      Ops per second : 969800829 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.26751

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 470506103 ns
      Average runtime : 1.40222 ns/op
      Ops per second : 713156062 op/s
      -- Other function --
      Total time : 345859456 ns
      Average runtime : 1.03074 ns/op
      Ops per second : 970175237 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.3604

    • roundevenf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 148247844 ns 
           Average runtime : 1.83022 ns/op 
           Ops per second  : 546382313 op/s 
      -- Other function --
           Total time      : 61793050 ns 
           Average runtime : 0.762877 ns/op 
           Ops per second  : 1310827026 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 2.3991 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 185690023 ns
      Average runtime : 1.47373 ns/op
      Ops per second : 678550187 op/s
      -- Other function --
      Total time : 94472860 ns
      Average runtime : 0.749785 ns/op
      Ops per second : 1333716371 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.96554

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 74158488 ns
      Average runtime : 1.17712 ns/op
      Ops per second : 849531883 op/s
      -- Other function --
      Total time : 49494629 ns
      Average runtime : 0.785629 ns/op
      Ops per second : 1272865385 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49831

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 100262410 ns
      Average runtime : 2.45021 ns/op
      Ops per second : 408129028 op/s
      -- Other function --
      Total time : 29082194 ns
      Average runtime : 0.710709 ns/op
      Ops per second : 1407046524 op/s
      -- Average runtime ratio --
      Mine / Other's : 3.44755

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 30197672 ns
      Average runtime : 1.47594 ns/op
      Ops per second : 677535672 op/s
      -- Other function --
      Total time : 14457804 ns
      Average runtime : 0.706638 ns/op
      Ops per second : 1415152674 op/s
      -- Average runtime ratio --
      Mine / Other's : 2.08868

    • truncf
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 20698161 ns 
           Average runtime : 0.729141 ns/op 
           Ops per second  : 1371476432 op/s 
      -- Other function --
           Total time      : 20805257 ns 
           Average runtime : 0.732914 ns/op 
           Ops per second  : 1364416695 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.994852 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 118423991 ns
      Average runtime : 0.728403 ns/op
      Ops per second : 1372866415 op/s
      -- Other function --
      Total time : 122439168 ns
      Average runtime : 0.7531 ns/op
      Ops per second : 1327845677 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.967207

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 101149211 ns
      Average runtime : 0.739536 ns/op
      Ops per second : 1352199573 op/s
      -- Other function --
      Total time : 102564372 ns
      Average runtime : 0.749883 ns/op
      Ops per second : 1333542216 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.986202

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 465688802 ns
      Average runtime : 0.69393 ns/op
      Ops per second : 1441066560 op/s
      -- Other function --
      Total time : 465579712 ns
      Average runtime : 0.693768 ns/op
      Ops per second : 1441404216 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00023

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 232660889 ns
      Average runtime : 0.693384 ns/op
      Ops per second : 1442203205 op/s
      -- Other function --
      Total time : 233404785 ns
      Average runtime : 0.695601 ns/op
      Ops per second : 1437606688 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.996813

    • truncf16
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 90908570 ns 
           Average runtime : 1.12233 ns/op 
           Ops per second  : 891005105 op/s 
      -- Other function --
           Total time      : 61972005 ns 
           Average runtime : 0.765086 ns/op 
           Ops per second  : 1307041784 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.46693 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 137632650 ns
      Average runtime : 1.09232 ns/op
      Ops per second : 915480447 op/s
      -- Other function --
      Total time : 93412110 ns
      Average runtime : 0.741366 ns/op
      Ops per second : 1348861512 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.47339

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 72320882 ns
      Average runtime : 1.14795 ns/op
      Ops per second : 871117694 op/s
      -- Other function --
      Total time : 50915283 ns
      Average runtime : 0.808179 ns/op
      Ops per second : 1237349500 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.42042

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 42513143 ns
      Average runtime : 1.03893 ns/op
      Ops per second : 962525871 op/s
      -- Other function --
      Total time : 28378581 ns
      Average runtime : 0.693514 ns/op
      Ops per second : 1441932561 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49807

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 21227905 ns
      Average runtime : 1.03753 ns/op
      Ops per second : 963825681 op/s
      -- Other function --
      Total time : 14163249 ns
      Average runtime : 0.692241 ns/op
      Ops per second : 1444583795 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.4988

    • rintf_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30661703 ns 
           Average runtime : 1.08013 ns/op 
           Ops per second  : 925814198 op/s 
      -- Other function --
           Total time      : 20620239 ns 
           Average runtime : 0.726396 ns/op 
           Ops per second  : 1376659116 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.48697 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174628134 ns
      Average runtime : 1.0741 ns/op
      Ops per second : 931008745 op/s
      -- Other function --
      Total time : 123465292 ns
      Average runtime : 0.759411 ns/op
      Ops per second : 1316809909 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.41439

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148211019 ns
      Average runtime : 1.08362 ns/op
      Ops per second : 922832330 op/s
      -- Other function --
      Total time : 103138021 ns
      Average runtime : 0.754077 ns/op
      Ops per second : 1326125115 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.43702

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693252849 ns
      Average runtime : 1.03303 ns/op
      Ops per second : 968028564 op/s
      -- Other function --
      Total time : 466151531 ns
      Average runtime : 0.69462 ns/op
      Ops per second : 1439636074 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48718

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346841716 ns
      Average runtime : 1.03367 ns/op
      Ops per second : 967427689 op/s
      -- Other function --
      Total time : 232742187 ns
      Average runtime : 0.693626 ns/op
      Ops per second : 1441699437 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49024

    • rintf_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30935953 ns 
           Average runtime : 1.08979 ns/op 
           Ops per second  : 917606772 op/s 
      -- Other function --
           Total time      : 20684693 ns 
           Average runtime : 0.728667 ns/op 
           Ops per second  : 1372369413 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.4956 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174629843 ns
      Average runtime : 1.07411 ns/op
      Ops per second : 930999634 op/s
      -- Other function --
      Total time : 123864095 ns
      Average runtime : 0.761864 ns/op
      Ops per second : 1312570200 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40985

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148850546 ns
      Average runtime : 1.0883 ns/op
      Ops per second : 918867439 op/s
      -- Other function --
      Total time : 103109985 ns
      Average runtime : 0.753872 ns/op
      Ops per second : 1326485693 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44361

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693808798 ns
      Average runtime : 1.03386 ns/op
      Ops per second : 967252882 op/s
      -- Other function --
      Total time : 466993530 ns
      Average runtime : 0.695875 ns/op
      Ops per second : 1437040380 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48569

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346421956 ns
      Average runtime : 1.03242 ns/op
      Ops per second : 968599923 op/s
      -- Other function --
      Total time : 233100342 ns
      Average runtime : 0.694693 ns/op
      Ops per second : 1439484288 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48615

    • rintf_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 31274618 ns 
           Average runtime : 1.10172 ns/op 
           Ops per second  : 907670239 op/s 
      -- Other function --
           Total time      : 20605224 ns 
           Average runtime : 0.725867 ns/op 
           Ops per second  : 1377662286 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.5178 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174836100 ns
      Average runtime : 1.07538 ns/op
      Ops per second : 929901319 op/s
      -- Other function --
      Total time : 124161865 ns
      Average runtime : 0.763696 ns/op
      Ops per second : 1309422341 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.40813

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 147998373 ns
      Average runtime : 1.08207 ns/op
      Ops per second : 924158267 op/s
      -- Other function --
      Total time : 102950277 ns
      Average runtime : 0.752704 ns/op
      Ops per second : 1328543487 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.43757

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693344849 ns
      Average runtime : 1.03316 ns/op
      Ops per second : 967900116 op/s
      -- Other function --
      Total time : 466602784 ns
      Average runtime : 0.695292 ns/op
      Ops per second : 1438243797 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48594

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 346909343 ns
      Average runtime : 1.03387 ns/op
      Ops per second : 967239097 op/s
      -- Other function --
      Total time : 232781819 ns
      Average runtime : 0.693744 ns/op
      Ops per second : 1441453982 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49028

    • rintf_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 30855550 ns 
           Average runtime : 1.08696 ns/op 
           Ops per second  : 919997861 op/s 
      -- Other function --
           Total time      : 20597819 ns 
           Average runtime : 0.725606 ns/op 
           Ops per second  : 1378157561 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.498 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 174636800 ns
      Average runtime : 1.07416 ns/op
      Ops per second : 930962546 op/s
      -- Other function --
      Total time : 123691406 ns
      Average runtime : 0.760802 ns/op
      Ops per second : 1314402716 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.41187

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 148752767 ns
      Average runtime : 1.08758 ns/op
      Ops per second : 919471434 op/s
      -- Other function --
      Total time : 103059611 ns
      Average runtime : 0.753503 ns/op
      Ops per second : 1327134060 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.44337

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 693370158 ns
      Average runtime : 1.0332 ns/op
      Ops per second : 967864786 op/s
      -- Other function --
      Total time : 466081258 ns
      Average runtime : 0.694515 ns/op
      Ops per second : 1439853133 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.48766

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 347026326 ns
      Average runtime : 1.03422 ns/op
      Ops per second : 966913040 op/s
      -- Other function --
      Total time : 232803956 ns
      Average runtime : 0.69381 ns/op
      Ops per second : 1441316916 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.49064

    • rintf16_upward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 62735351 ns 
           Average runtime : 0.774511 ns/op 
           Ops per second  : 1291138069 op/s 
      -- Other function --
           Total time      : 62837850 ns 
           Average runtime : 0.775776 ns/op 
           Ops per second  : 1289032008 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 0.998369 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94946370 ns
      Average runtime : 0.753543 ns/op
      Ops per second : 1327064952 op/s
      -- Other function --
      Total time : 94790568 ns
      Average runtime : 0.752306 ns/op
      Ops per second : 1329246175 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00164

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50013062 ns
      Average runtime : 0.793858 ns/op
      Ops per second : 1259670923 op/s
      -- Other function --
      Total time : 50271973 ns
      Average runtime : 0.797968 ns/op
      Ops per second : 1253183359 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99485

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 29147257 ns
      Average runtime : 0.712299 ns/op
      Ops per second : 1403905691 op/s
      -- Other function --
      Total time : 28986776 ns
      Average runtime : 0.708377 ns/op
      Ops per second : 1411678208 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00554

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14316691 ns
      Average runtime : 0.699741 ns/op
      Ops per second : 1429101179 op/s
      -- Other function --
      Total time : 14210938 ns
      Average runtime : 0.694572 ns/op
      Ops per second : 1439736068 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00744

    • rintf16_downward
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 63073487 ns 
           Average runtime : 0.778685 ns/op 
           Ops per second  : 1284216298 op/s 
      -- Other function --
           Total time      : 62646932 ns 
           Average runtime : 0.773419 ns/op 
           Ops per second  : 1292960363 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00681 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 94914795 ns
      Average runtime : 0.753292 ns/op
      Ops per second : 1327506422 op/s
      -- Other function --
      Total time : 94928507 ns
      Average runtime : 0.753401 ns/op
      Ops per second : 1327314670 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.999856

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50684896 ns
      Average runtime : 0.804522 ns/op
      Ops per second : 1242973843 op/s
      -- Other function --
      Total time : 50038249 ns
      Average runtime : 0.794258 ns/op
      Ops per second : 1259036861 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01292

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 28751546 ns
      Average runtime : 0.702628 ns/op
      Ops per second : 1423227815 op/s
      -- Other function --
      Total time : 28870199 ns
      Average runtime : 0.705528 ns/op
      Ops per second : 1417378522 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99589

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14363851 ns
      Average runtime : 0.702046 ns/op
      Ops per second : 1424409094 op/s
      -- Other function --
      Total time : 14207804 ns
      Average runtime : 0.694419 ns/op
      Ops per second : 1440053649 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01098

    • rintf16_towardzero
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 63251465 ns 
           Average runtime : 0.780882 ns/op 
           Ops per second  : 1280602749 op/s 
      -- Other function --
           Total time      : 62671956 ns 
           Average runtime : 0.773728 ns/op 
           Ops per second  : 1292444103 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.00925 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 95787151 ns
      Average runtime : 0.760215 ns/op
      Ops per second : 1315416511 op/s
      -- Other function --
      Total time : 93712931 ns
      Average runtime : 0.743753 ns/op
      Ops per second : 1344531631 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.02213

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50560343 ns
      Average runtime : 0.802545 ns/op
      Ops per second : 1246035850 op/s
      -- Other function --
      Total time : 50259684 ns
      Average runtime : 0.797773 ns/op
      Ops per second : 1253489775 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00598

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 29165691 ns
      Average runtime : 0.712749 ns/op
      Ops per second : 1403018361 op/s
      -- Other function --
      Total time : 28839030 ns
      Average runtime : 0.704766 ns/op
      Ops per second : 1418910414 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01133

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14279663 ns
      Average runtime : 0.697931 ns/op
      Ops per second : 1432806922 op/s
      -- Other function --
      Total time : 14477458 ns
      Average runtime : 0.707598 ns/op
      Ops per second : 1413231521 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.986338

    • rintf16_nearest
      Performance tests with inputs in normal integral range:
      -- My function --
           Total time      : 63646240 ns 
           Average runtime : 0.785756 ns/op 
           Ops per second  : 1272659626 op/s 
      -- Other function --
           Total time      : 62648275 ns 
           Average runtime : 0.773435 ns/op 
           Ops per second  : 1292932646 op/s 
      -- Average runtime ratio --
           Mine / Other's  : 1.01593 
      

      Performance tests with inputs in low integral range:
      -- My function --
      Total time : 95371461 ns
      Average runtime : 0.756916 ns/op
      Ops per second : 1321149940 op/s
      -- Other function --
      Total time : 94567017 ns
      Average runtime : 0.750532 ns/op
      Ops per second : 1332388437 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.00851

      Performance tests with inputs in high integral range:
      -- My function --
      Total time : 50287720 ns
      Average runtime : 0.798218 ns/op
      Ops per second : 1252790939 op/s
      -- Other function --
      Total time : 50289225 ns
      Average runtime : 0.798242 ns/op
      Ops per second : 1252753447 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99997

      Performance tests with inputs in normal fractional range:
      -- My function --
      Total time : 29163371 ns
      Average runtime : 0.712692 ns/op
      Ops per second : 1403129974 op/s
      -- Other function --
      Total time : 28648315 ns
      Average runtime : 0.700105 ns/op
      Ops per second : 1428356257 op/s
      -- Average runtime ratio --
      Mine / Other's : 1.01798

      Performance tests with inputs in subnormal fractional range:
      -- My function --
      Total time : 14373007 ns
      Average runtime : 0.702493 ns/op
      Ops per second : 1423501707 op/s
      -- Other function --
      Total time : 14488770 ns
      Average runtime : 0.708151 ns/op
      Ops per second : 1412128151 op/s
      -- Average runtime ratio --
      Mine / Other's : 0.99201

@overmighty overmighty requested a review from lntue July 12, 2024 15:24
… when available

Fix check_builtin_ceil_floor_trunc.cpp not checking for __builtin_floor{,f}.
… when available

Optimize rint{,f,f16} using __builtin_rint{,f} when available.
… when available

Nit: sort roundeven after round.
… when available

Fix builtin detection succeeding even when calls to functions provided by the system libc are generated.
… when available

Delete inline assembly implementations for AArch64.
… when available

Fix GCC warning "variable ‘result’ set but not used".
… when available

Fix builtin detection on Android due to missing _start being an error with LLD from Android NDK r26d.
@overmighty overmighty force-pushed the libc-math-rounding-builtins branch from 911d1ef to 7f212a3 Compare July 15, 2024 13:33
@overmighty
Copy link
Member Author

Rebased to fix the merge conflicts.

I still get these "undefined hidden symbol" linking errors I've been getting since the switch to LIBC_NAMESPACE_DECL:

[4/5] Linking CXX executable projects/libc/test/src/math/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__
FAILED: projects/libc/test/src/math/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__
: && /usr/bin/clang++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -fuse-ld=lld -Wl,--color-diagnostics projects/libc/test/src/math/CMakeFiles/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__.dir/cosf_test.cpp.o -o projects/libc/test/src/math/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__  -Wl,-rpath,/tmp/llvm-build-overlay/lib  projects/libc/src/errno/CMakeFiles/libc.src.errno.errno.__internal__.dir/./libc_errno.cpp.o  projects/libc/src/__support/OSUtil/linux/CMakeFiles/libc.src.__support.OSUtil.linux.linux_util.dir/./exit.cpp.o  projects/libc/src/__support/OSUtil/linux/CMakeFiles/libc.src.__support.OSUtil.linux.linux_util.dir/./fcntl.cpp.o  projects/libc/src/math/generic/CMakeFiles/libc.src.math.generic.cosf.__NO_ROUND_OPT.__internal__.dir/./cosf.cpp.o  projects/libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/./error_to_string.cpp.o  lib/liblibcMPFRWrapper.so  -lmpfr  -lgmp  lib/libLibcFPTestHelpers.unit.a  lib/libLibcDeathTestExecutors.unit.a  lib/libLibcTest.unit.a  -lmpfr  -lgmp && :
ld.lld: error: undefined hidden symbol: void __llvm_libc_19_0_0_git::testing::mpfr::internal::explain_unary_operation_single_output_error<float, float>(__llvm_libc_19_0_0_git::testing::mpfr::Operation, float, float, double, __llvm_libc_19_0_0_git::fputil::testing::RoundingMode)
>>> referenced by MPFRUtils.h:277 (/home/overmighty/projects/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:277)
>>>               projects/libc/test/src/math/CMakeFiles/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__.dir/cosf_test.cpp.o:(void __llvm_libc_19_0_0_git::testing::mpfr::internal::MPFRMatcher<(__llvm_libc_19_0_0_git::testing::mpfr::Operation)10, false, float, float>::explain_error<float, float>(float, float))

ld.lld: error: undefined hidden symbol: bool __llvm_libc_19_0_0_git::testing::mpfr::internal::compare_unary_operation_single_output<float, float>(__llvm_libc_19_0_0_git::testing::mpfr::Operation, float, float, double, __llvm_libc_19_0_0_git::fputil::testing::RoundingMode)
>>> referenced by MPFRUtils.h:248 (/home/overmighty/projects/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:248)
>>>               projects/libc/test/src/math/CMakeFiles/libc.test.src.math.cosf_test.__unit__.__NO_ROUND_OPT.__build__.dir/cosf_test.cpp.o:(bool __llvm_libc_19_0_0_git::testing::mpfr::internal::MPFRMatcher<(__llvm_libc_19_0_0_git::testing::mpfr::Operation)10, false, float, float>::match<float, float>(float, float))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

I change MPFRUtils to use LIBC_NAMESPACE again when testing locally to fix these errors:

diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index b67a9da40bd7..3f1758b20519 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -23,7 +23,7 @@

 template <typename T> using FPBits = LIBC_NAMESPACE::fputil::FPBits<T>;

-namespace LIBC_NAMESPACE_DECL {
+namespace LIBC_NAMESPACE {
 namespace testing {
 namespace mpfr {

diff --git a/libc/utils/MPFRWrapper/MPFRUtils.h b/libc/utils/MPFRWrapper/MPFRUtils.h
index 28390af9ee6d..9b0002209bed 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.h
+++ b/libc/utils/MPFRWrapper/MPFRUtils.h
@@ -16,7 +16,7 @@

 #include <stdint.h>

-namespace LIBC_NAMESPACE_DECL {
+namespace LIBC_NAMESPACE {
 namespace testing {
 namespace mpfr {

@overmighty overmighty merged commit 4531f82 into llvm:main Jul 15, 2024
6 checks passed
yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
…vailable (#98376)

Summary: 

Test Plan: 

Reviewers: 

Subscribers: 

Tasks: 

Tags: 


Differential Revision: https://phabricator.intern.facebook.com/D60251690
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants