Currently CMake doesn't build builtins for AArch64 and if one does this anyway
it's likely that at least __multc3, __floatditf and __floatunditf will be
missing. There is actually more builtins to add, but these come from
different libc implementations, thus providing them makes compiler-rt for
AArch64 good enough at least for basic usage.
Builtins implementation were originally taken from FreeBSD project:
Until they have been tested to find mistakes in __float* functions.
__floatditf was based on __floatsitf, which had the same mistakes
(fixed it in r243746).
Version of the builtins in this patch are fixed and complemented with basic
tests. Additionally they were tested via GCC's torture (this is what revealed
these issues).
P.S. Ed (author of FreeBSD patches) asked for feedback on the list some time ago (here here)
and got no response, but it seems to be worth adding these builtins as is and
extracting common part later.
nitpick: is it necessary to have __ac and others, since they're all local context?