http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59534
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- The denormal in f5.0_16 is directly loaded from f5.0_16 = .omp_data_i_14(D)->f5.0; _17 = .omp_data_i_14(D)->is_f5; _18 = *_17; _43 = e5.1_15 != 8; if (_18 < _43) goto <bb 3>; else goto <bb 13>; <bb 3>: ... <bb 13>: _40 = f5.0_16 != 6.5e+0; l_36 = _40 & _18; goto <bb 3>; That corresponds to: ... movss 8(%rdi), %xmm0 movl (%rax), %eax cmpl $8, %ebp setne %dl cmpl %edx, %eax jae .L2 movl $1, %r12d .L13: ... .L2: xorl %edx, %edx movl $1, %r12d ucomiss .LC1(%rip), %xmm0 setp %dl cmove %edx, %r12d andl %eax, %r12d jmp .L13