[all-commits] [llvm/llvm-project] 341889: [builtins] Define fmax and scalbn inline

Ryan Prichard via All-commits all-commits at lists.llvm.org
Wed Feb 24 14:33:17 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 341889ee9e03e73b313263c516b3d1fd33d4c4ba
      https://github.com/llvm/llvm-project/commit/341889ee9e03e73b313263c516b3d1fd33d4c4ba
  Author: Ryan Prichard <rprichard at google.com>
  Date:   2021-02-24 (Wed, 24 Feb 2021)

  Changed paths:
    M compiler-rt/lib/builtins/divdc3.c
    M compiler-rt/lib/builtins/divsc3.c
    M compiler-rt/lib/builtins/divtc3.c
    M compiler-rt/lib/builtins/fp_lib.h
    M compiler-rt/lib/builtins/int_lib.h
    M compiler-rt/lib/builtins/int_math.h
    M compiler-rt/lib/builtins/ppc/divtc3.c
    A compiler-rt/test/builtins/Unit/compiler_rt_fmax_test.c
    A compiler-rt/test/builtins/Unit/compiler_rt_fmaxf_test.c
    A compiler-rt/test/builtins/Unit/compiler_rt_fmaxl_test.c
    A compiler-rt/test/builtins/Unit/compiler_rt_scalbn_test.c
    A compiler-rt/test/builtins/Unit/compiler_rt_scalbnf_test.c
    A compiler-rt/test/builtins/Unit/compiler_rt_scalbnl_test.c

  Log Message:
  -----------
  [builtins] Define fmax and scalbn inline

Define inline versions of __compiler_rt_fmax* and __compiler_rt_scalbn*
rather than depend on the versions in libm. As with
__compiler_rt_logbn*, these functions are only defined for single,
double, and quad precision (binary128).

Fixes PR32279 for targets using only these FP formats (e.g. Android
on arm/arm64/x86/x86_64).

For single and double precision, on AArch64, use __builtin_fmax[f]
instead of the new inline function, because the builtin expands to the
AArch64 fmaxnm instruction.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D91841




More information about the All-commits mailing list