https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89399
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |law at gcc dot gnu.org Target Milestone|--- |7.5 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Seems there is a great inconsistency in ree.c, some spots use single_set, others use *get_sub_rtx, and others use PATTERN directly. Here we have cand->insn (insn 7 6 20 2 (parallel [ (set (reg:SI 0 r0 [orig:111 _2 ] [111]) (sign_extend:SI (reg:HI 0 r0 [116]))) (clobber (scratch:SI)) ]) "pr89399.c":7:5 828 {thumb1_extendhisi2} (nil)) and use 782 bool copy_needed 783 = (REGNO (SET_DEST (PATTERN (cand->insn))) 784 != REGNO (get_extended_src_reg (SET_SRC (PATTERN (cand->insn))))); find_removable_extensions which adds the candidates seems to be the most permissive one though (uses single_set). So, shall we use e.g. get_sub_rtx in all cases?