https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93934
--- Comment #21 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Zoltan Vajda from comment #19) > The problem does not only apply for conditional moves! I can turn on sse, > for example. > > https://gcc.godbolt.org/z/jP3Kne8T5 > > Then the problematic code with the conditional move disappears, but I have a > similar speculative fld problem in another situation. > > .L10: > inc esi > cmp edi, esi > jne .L11 > test bl, bl <= test input variable 'b' > fld QWORD PTR [ebp-24] <= load of (maybe) uninitialized > 'result' > je .L24 <= jump based on value of 'b' This one is fixed at least in gcc-10. .L18: testb %bl, %bl je .L8 fldl -24(%ebp) addl $20, %esp popl %ebx