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.