[r16-3760 Regression] FAIL: g++.target/i386/pr116896-1.C -std=gnu++23 scan-assembler-times \tjp\t 1 on Linux/x86_64

Robin Dapp rdapp.gcc@gmail.com
Fri Sep 12 20:03:09 GMT 2025


> I also believe that we should keep the before one. The main problem I suppose
> would be the extra ucomi here. It is an even bigger problem than the conditional
> jmp vs cmov originally in that PR.

The conversion noce_try_cmove_arith succeeds now, with the skylake+ arch.
The cost for the before sequence is 32.  The ifcvt'ed sequence has the same 
cost and that's why we choose it.

I find both slightly surprising.  The before seq seems expensive (for a maximum 
of two insns and a jump) and the after seq is a bit cheap (five insns) if cmov 
and ucomi are not preferable.  The branch costs are no factor as -mbranch-cost 
doesn't make a difference.

I'll check the individual insn costs next but it won't hurt if somebody with a 
better grasp of x86 costing can chime in.

-- 
Regards
 Robin



More information about the Gcc-regression mailing list