https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94665
--- Comment #6 from z.zhanghaijian at huawei dot com <z.zhanghaijian at huawei dot com> --- (In reply to Segher Boessenkool from comment #5) > Can you show the -fdump-rtl-combine-all dump where that insn is > created? > > It is fine to generate min or max insns here; but you need to handle the > case where vara is NaN: you should return that NaN then. Other than that > your function is just the max of vara, varb, varc. The dump infoļ¼ Trying 39 -> 40: 39: cc:CCFPE=cmp(r94:SF,r93:SF) 40: r94:SF={(cc:CCFPE<0)?r94:SF:r93:SF} REG_DEAD r93:SF REG_DEAD cc:CCFPE Successfully matched this instruction: (set (reg:SF 94 [ _4 ]) (smin:SF (reg:SF 94 [ _4 ]) (reg:SF 93 [ _2 ]))) allowing combination of insns 39 and 40 original costs 4 + 4 = 8 replacement cost 8 deferring deletion of insn with uid = 39. modifying insn i3 40: r94:SF=smin(r94:SF,r93:SF) REG_DEAD r93:SF deferring rescan insn with uid = 40.