HomeFreeBSD

Use a builtin where possible in msun

Description

Use a builtin where possible in msun

Some of the functions in msun can be implemented using a compiler
builtin function to generate a small number of instructions. Implement
this support in fma, fmax, fmin, and sqrt on arm64.

Care must be taken as the builtin can be implemented as a function
call on some architectures that lack direct support. In these cases
we need to use the original code path.

As we don't set errno on failure build with -fno-math-errno so the
toolchain doesn't convert a builtin into a function call when it
detects a failure, e.g. gcc will add a call to sqrt when the input
is negative leading to an infinite loop.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32801

(cherry picked from commit b2e843161dc3b79777e873183447c92ed9c3703a)

Details

Provenance
andrewAuthored on Nov 2 2021, 11:31 AM
Differential Revision
D32801: Use a builtin where possible in msun
Parents
rGbfd10d146ba4: Switch to Arm Optimized Routines for mem* & str*
Branches
Unknown
Tags
Unknown