[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