https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95674
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |jakub at gcc dot gnu.org, | |vmakarov at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2020-06-15 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The insn in question is: (define_insn ("*umuldi3_highpart_1") [ (set (match_operand:DI 0 ("register_operand") ("=d")) (truncate:DI (lshiftrt:TI (mult:TI (zero_extend:TI (match_operand:DI 1 ("nonimmediate_operand") ("%a"))) (zero_extend:TI (match_operand:DI 2 ("nonimmediate_operand") ("rm")))) (const_int 64 [0x40])))) (clobber (match_scratch:DI 3 ("=1"))) (clobber (reg:CC 17)) ] ("TARGET_64BIT and I don't see why the RA couldn't choose the args the other way, perhaps the match_scratch =1 (i.e. "a" constraint) complicates it, but the constant is REG_DEAD in that insn. Vlad, could you please have a look? Thanks.