https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78799
--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Yong <[email protected]>: https://gcc.gnu.org/g:e63a873f1df7493b8b657acafb451bf40166044e commit r17-2359-ge63a873f1df7493b8b657acafb451bf40166044e Author: Oleg Tolmatcev <[email protected]> Date: Sun Jun 14 00:22:07 2026 +0200 i386: Fix Win64 __int128 return handling [PR78799] GCC could return __int128 values in SSE (%xmm0) on Windows x64 instead of following the MS x64 ABI. Root cause: return classification allowed 128-bit integer-like scalars to be treated as direct register returns. This patch updates the Windows x64 return-classification and codegen to treat int128 as an indirect return (caller-provided slot passed as first argument, pointer returned in RAX). gcc: PR target/78799 * config/i386/i386.cc (function_value_ms_64): Do not treat integral 16-byte values as SSE returns. (ix86_return_in_memory): Likewise avoid treating integral 16-byte values as XMM returns. gcc/testsuite: * gcc.target/i386/pr78799.c: New test. Signed-off-by: Oleg Tolmatcev <[email protected]> Signed-off-by: Jonathan Yong <[email protected]>
