svn commit: r307231 - head/lib/libgcc_s
Dimitry Andric
dimitry at andric.com
Fri Oct 14 18:55:46 UTC 2016
On 14 Oct 2016, at 04:06, Ed Maste <emaste at freebsd.org> wrote:
>
> Hi Bruce, thank you for the detailed response.
>
> On 14 October 2016 at 01:53, Bruce Evans <brde at optusnet.com.au> wrote:
>>> compiler-rt's complex division support routines contain calls to
>>> compiler builtins such as `__builtin_scalbnl`. Unfortunately Clang
>>> turns these back into a call to `scalbnl`.
>>
>> gcc-4.2 has the same bug.
>
> Oh, interesting. Do you know off hand if it's resolved in later GCC?
Not for x86, in any case (I think I talked about this with you on IRC
before). For example, using the latest gcc 7.0.0 20160911 on this
program:
float f1(float x, int n)
{
return __builtin_scalbnf(x, n);
}
double f2(double x, int n)
{
return __builtin_scalbn(x, n);
}
long double f3(long double x, long n)
{
return __builtin_scalbnl(x, n);
}
gives this assembly:
.p2align 4,,15
.globl f1
.type f1, @function
f1:
.LFB0:
.cfi_startproc
jmp scalbnf
.cfi_endproc
.LFE0:
.size f1, .-f1
.p2align 4,,15
.globl f2
.type f2, @function
f2:
.LFB1:
.cfi_startproc
jmp scalbn
.cfi_endproc
.LFE1:
.size f2, .-f2
.p2align 4,,15
.globl f3
.type f3, @function
f3:
.LFB2:
.cfi_startproc
jmp scalbnl
.cfi_endproc
.LFE2:
.size f3, .-f3
E.g., it looks like the __builtin_scalbn functions were always a red
herring. :-)
> It seems particularly unfortunate for the compiler to report (by
> whatever mechanism) that a builtin exists, and then just turn that
> builtin into a library call.
Yes, at best this is misleading.
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20161014/5d35385c/attachment.sig>
More information about the svn-src-head
mailing list