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.