[v2] benchtests: Run _Float128 tests only on architectures that support it
Commit Message
From: Arjun Shankar <arjun@redhat.com>
__float128 is a non-standard name and is not available on some architectures
(like aarch64 or s390x) even though they may support the standard _Float128
type. Other architectures (like armv7) don't support quad-precision
floating-point operations at all.
This commit replaces benchtests references to __float128 with _Float128 and
runs the corresponding tests only on architectures that support it.
---
Thanks for looking at v1, Florian, Joseph and Paul.
v2 changes: dropped configure[.ac] changes; used the float128[-alias]-fcts
variables instead.
Tested on armv7hl, i686, x86_64, aarch64, ppc64le, and s390x.
benchtests/Makefile | 6 +++++-
benchtests/expf128-inputs | 4 ++--
benchtests/powf128-inputs | 4 ++--
benchtests/sinf128-inputs | 4 ++--
4 files changed, 11 insertions(+), 7 deletions(-)
Comments
Dear Arjun,
this patch applies cleanly on master, and I've tested it on x86_64 Linux:
make bench works and produces results for expf128, powf128 and sinf128,
as expected. Thus ok on my side. I let Florian and Joseph confirm.
Paul
* Arjun Shankar:
> From: Arjun Shankar <arjun@redhat.com>
>
> __float128 is a non-standard name and is not available on some architectures
> (like aarch64 or s390x) even though they may support the standard _Float128
> type. Other architectures (like armv7) don't support quad-precision
> floating-point operations at all.
>
> This commit replaces benchtests references to __float128 with _Float128 and
> runs the corresponding tests only on architectures that support it.
This looks good to me. Thanks.
Florian
@@ -25,7 +25,11 @@ bench-math := acos acosh asin asinh atan atanh cos cosh exp exp2 log log2 \
modf pow rint sin sincos sinh sqrt tan tanh fmin fmax fminf \
fmaxf powf trunc truncf roundeven roundevenf expf exp2f logf \
log2f sincosf sinf cosf isnan isinf isfinite hypot logb logbf \
- exp10f expf128 powf128 sinf128
+ exp10f
+
+ifneq (,$(filter yes,$(float128-fcts) $(float128-alias-fcts)))
+bench-math += expf128 powf128 sinf128
+endif
bench-pthread := pthread_once thread_create
@@ -1,6 +1,6 @@
## includes: math.h
-## args: __float128
-## ret: __float128
+## args: _Float128
+## ret: _Float128
# Random inputs in [-10,10]
## name: workload-random.wrf
0x4.e6f9d6da10d9a422942a89cdfa1p+0L
@@ -1,6 +1,6 @@
## includes: math.h
-## args: __float128:__float128
-## ret: __float128
+## args: _Float128:_Float128
+## ret: _Float128
# Random inputs in [-10,10] such that x and y are not both negative
## name: workload-random.wrf
0x8.130b31ed5288656428a29cead83p+0L, -0x6.e7ead09b7877a118813b50cfb3c8p+0L
@@ -1,6 +1,6 @@
## includes: math.h
-## args: __float128
-## ret: __float128
+## args: _Float128
+## ret: _Float128
# Random inputs in [-10,10]
## name: workload-random.wrf
0x4.e6f9d6da10d9a422942a89cdfa1p+0