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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It is cant_combine_insn_p that returns true on insn 14
(insn 5 2 6 2 (parallel [
            (set (reg:DI 84)
                (unspec_volatile:DI [
                        (const_int 0 [0])
                    ] UNSPECV_RDTSC))
            (set (reg:DI 85)
                (unspec_volatile:DI [
                        (const_int 0 [0])
                    ] UNSPECV_RDTSC))
        ]) "pr92180.c":4:10 1049 {rdtsc_rex64}
     (nil))
(insn 6 5 7 2 (parallel [
            (set (reg:DI 85)
                (ashift:DI (reg:DI 85)
                    (const_int 32 [0x20])))
            (clobber (reg:CC 17 flags))
        ]) "pr92180.c":4:10 564 {*ashldi3_1}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
(insn 7 6 14 2 (parallel [
            (set (reg:DI 84)
                (ior:DI (reg:DI 84)
                    (reg:DI 85)))
            (clobber (reg:CC 17 flags))
        ]) "pr92180.c":4:10 454 {*iordi_1}
     (expr_list:REG_DEAD (reg:DI 85)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))
(insn 14 7 15 2 (set (reg/i:SI 0 ax)
        (subreg:SI (reg:DI 84) 0)) "pr92180.c":5:1 67 {*movsi_internal}
     (expr_list:REG_DEAD (reg:DI 84)
        (nil)))
because ax is targetm.class_likely_spilled_p.

Reply via email to