https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98647
--- Comment #2 from Gabriel Ravier <gabravier at gmail dot com> --- I have just looked at the ABI and it just says that floats/doubles are passed in SSE registers, but does not seem to explicitly specify whether the upper bits are cleared or not (it explicitly specifies that only the first 8 bits of a _Bool return are specified: I would tend to deduce from that that by default, the upper bits or a value are specified to be cleared).