https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I can see the mlm_matching_isr FAIL with current trunk, but certainly don't see the integral > final comparison being optimized out. 0x00007ffff57978e1 <__shower_core_MOD_shower_generate_next_isr_branching+4529>: callq 0x7ffff578e160 <__shower_core_MOD_integral_over_z_part_isr> 0x00007ffff57978e6 <__shower_core_MOD_shower_generate_next_isr_branching+4534>: fldt 0x1f0(%rsp) 0x00007ffff57978ed <__shower_core_MOD_shower_generate_next_isr_branching+4541>: pop %r10 0x00007ffff57978ef <__shower_core_MOD_shower_generate_next_isr_branching+4543>: pop %r11 0x00007ffff57978f1 <__shower_core_MOD_shower_generate_next_isr_branching+4545>: fld %st(0) 0x00007ffff57978f3 <__shower_core_MOD_shower_generate_next_isr_branching+4547>: fldt 0x40(%rsp) 0x00007ffff57978f7 <__shower_core_MOD_shower_generate_next_isr_branching+4551>: fxch %st(2) => 0x00007ffff57978f9 <__shower_core_MOD_shower_generate_next_isr_branching+4553>: fucomi %st(2),%st 0x00007ffff57978fb <__shower_core_MOD_shower_generate_next_isr_branching+4555>: fstp %st(2) 0x00007ffff57978fd <__shower_core_MOD_shower_generate_next_isr_branching+4557>: fldt 0x70(%rsp) 0x00007ffff5797901 <__shower_core_MOD_shower_generate_next_isr_branching+4561>: fldt 0x80(%rsp) 0x00007ffff5797908 <__shower_core_MOD_shower_generate_next_isr_branching+4568>: ja 0x7ffff579752a <__shower_core_MOD_shower_generate_next_isr_branching+3578> That fucomi is the comparison of integral and final. I have no idea what the code is meant to do and in which occurence of this call + comparison do you expect to see the return part (if I put a breakpoint on this spot, I see more than hundred cases). At least on the first one the final value integral_over_z_part_isr is called with is one of the comparison operands, final is 8.0709805577720652785753130409318601 and integral is 1.2830660500802092213986273722913488e-06 info float R7: Valid 0x40028122bc8264869727 +8.070980557772065279 R6: Valid 0x3febac35d05484382d81 +1.283066050080209221e-06 =>R5: Valid 0x3febac35d05484382d81 +1.283066050080209221e-06 R4: Empty 0xc009d3234afd757eb870 R3: Empty 0x3ffc9d2933f75a096595 R2: Empty 0x4007bfa6d946f18e35f7 R1: Empty 0xc009d32c3121bd4b4150 R0: Empty 0x3ffc9d2933f75a096595 on the fucomi. So, what values of integral or final do you expect the return on?