https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84996
--- Comment #2 from Antony Polukhin <antoshkka at gmail dot com> --- Then let's change the example to int test(int lhs) { return 0.0 + lhs; } In that case no signaling Nan is possible, but the code still does additions test(int): pxor xmm0, xmm0 cvtsi2sd xmm0, edi addsd xmm0, QWORD PTR .LC0[rip] cvttsd2si eax, xmm0 ret