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
