]> git.ipfire.org Git - thirdparty/glibc.git/commit
powerpc: Remove modf optimization
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 16 Jun 2025 13:17:36 +0000 (10:17 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 25 Jun 2025 18:05:30 +0000 (15:05 -0300)
commit79bfbc93dee68830dd3b1d2b3453cf3811df6944
treef771b082df1c4cd010d575e41a72a066fc527b57
parent5c2b21c478068f4f3140b020416dccdead1401e6
powerpc: Remove modf optimization

The generic implementation is slight more optimized than the powerpc
one, where it has a more optimized inf/nan check (by not using FP
unit checks, along with branch prediction hints), and removed one
branch by issuing trunc instead of a combination of floor/ceil (which
also generated less code).

On power10 with gcc 14.2.1:

reciprocal-throughput        master         patch        difference
workload-0_1                 1.1351        0.9067            20.12%
workload-1_maxint            1.4230        0.9040            36.47%
workload-maxint_maxfloat     1.5038        0.9076            39.65%
workload-integral            1.1280        0.9111            19.23%

latency                      master         patch        difference
workload-0_1                 1.1440        2.7117          -137.03%
workload-1_maxint            4.0556        2.7070            33.25%
workload-maxint_maxfloat     3.2122        2.7164            15.43%
workload-integral            3.2381        2.7281            15.75%

Checked on powerpc64le-linux-gnu.
Reviewed-by: Sachin Monga <smonga@linux.ibm.com>
sysdeps/powerpc/fpu/math-use-builtins-trunc.h
sysdeps/powerpc/fpu/s_modf.c [deleted file]
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c