tgross35 wrote:

Copying my reply to @Andarwinux on #19214 for some more context on reasoning:

>> Since ABI doesn’t specify this, why choose the less efficient approach? Why 
>> can’t make gcc match clang’s behavior?
>
>That was my initial plan for a long time, which I noted in the linked commit. 
>But I talked with a handful of people and got the impression that the proposed 
>behavior here (return on the stack) is likely a closer interpretation of the 
>MSVC ABI's handling of fundamental types than returning in xmm0. This also 
>applies to i128 but it is much more set in stone (based on some light GCC 
>archaeology I got the feeling that returning __int128 in xmm0 is not really 
>intentional, but rather a carryover of __m128).
>
>If that's the case then I don't think the performance difference is especially 
>concerning. The type already needs to be passed in memory and even a simple 
>f128 addition is ~300 instructions (~50 for the shortest nontrivial fast 
>path), an extra `movups` won't matter much.

I'll close https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054 once this merges.

https://github.com/llvm/llvm-project/pull/204887
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to