[PATCH] D53608: [builtins] Build float128 soft float builtins for x86_64.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 23 15:44:30 PDT 2018


efriedma added a comment.

`__extendxftf2` and `__trunctfxf2` are for conversions between x86 long double and `__float128`; you'll need to write implementations yourself.  (That should be a separate patch.)

> Thanks Eli. I also found out that GCC 4.9 does not seem to have these defined even though it supports `__float128`.

gcc 5 has the define; that's good enough.

Missing changes to run the unittests (test/builtins/Unit/) for the new functions.  Unfortunately, it looks like that will be a large patch because they use "long double" and "__LDBL_MANT_DIG__" explicitly all over the place.



================
Comment at: lib/builtins/fp_lib.h:107
+// __LDBL_MANT_DIG__ is set to 64 for x86_64.
+#if __LDBL_MANT_DIG__ == 113 || defined(__x86_64__)
 #define CRT_LDBL_128BIT
----------------
Instead of checking for `__x86_64__`, this should probably also check for the FLOAT128 defines.


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D53608





More information about the llvm-commits mailing list