https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112657

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Andrew Pinski from comment #2)

> Someone will have to debug ifcvt.cc to see why it fails on x86_64 but works
> on aarch64.  Note there are some new changes to ifcvt.cc in review which
> might improve this, though I am not sure.

x86_64 targetm.noce_conversion_profitable_p returns false for:

(insn 20 0 19 (set (reg:SI 101)
        (const_int -9 [0xfffffffffffffff7])) 85 {*movsi_internal}
     (nil))

(insn 19 20 21 (set (reg:CCZ 17 flags)
        (compare:CCZ (reg/v:SI 99 [ c ])
            (const_int 14 [0xe]))) 11 {*cmpsi_1}
     (nil))

(insn 21 19 0 (set (reg/v:SI 99 [ c ])
        (if_then_else:SI (ne (reg:CCZ 17 flags)
                (const_int 0 [0]))
            (reg/v:SI 99 [ c ])
            (reg:SI 101))) 1438 {*movsicc_noc}
     (nil))

Reply via email to