[builtins] Fix __floattitf and __floatuntitf on x86
authorAlex Richardson <alexrichardson@google.com>
Tue, 27 Jun 2023 16:13:39 +0000 (09:13 -0700)
committerAlex Richardson <alexrichardson@google.com>
Tue, 27 Jun 2023 16:22:25 +0000 (09:22 -0700)
commitf157afceb0bd6910c31fcfff1321a9b93c3a2b70
tree24c82efa22110b907244bf446a705917529211b1
parentc4f76a692d6f25fa1d597e10310311075fa9b783
[builtins] Fix __floattitf and __floatuntitf on x86

These conversion functions were using LDBL_MANT_DIG (which is the 80-bit
extended float on x86) instead of the appropriate macro for the 128-bit
floating point type expected by the *tf* softfloat library calls.
This was discovered while testing D98261 (which allows building the *tf*
functions on x86).

This also changes the constants used in the two tests to use 128-bit
floating-point literals instead of long double ones to ensure that the
comparison succeeds on platforms with smaller long double (e.g. x86_64)

Reviewed By: scanon

Differential Revision: https://reviews.llvm.org/D131787
compiler-rt/lib/builtins/floattitf.c
compiler-rt/lib/builtins/floatuntitf.c
compiler-rt/lib/builtins/fp_lib.h
compiler-rt/test/builtins/Unit/floattitf_test.c
compiler-rt/test/builtins/Unit/floatuntitf_test.c