When `try_combine' combines two instructions, it adds the register notes from the old insns to the new combined insn. It also adds new register notes calculated from the new insn's clobbers by `recog_for_combine'.
In this process, it (`distribute_notes') suppresses duplicate register notes, but in doing so, seems to basically ignore the mode used in the notes' REG expressions -- so if the new note really refers to multiple registers because the mode is larger than word size, and the old note does _not_ (but does refer to the same starting register), then the result will only contain the register note for the smaller value. Since the new notes calculated by `recog_for_combine', which contain precise information from the new insn's clobbers, are added _last_, it seems as if this may result in incorrect register notes. Would it be OK to add the new reg notes calculated from clobbers first, before the notes from the old insns? Thanks, -Miles -- Come now, if we were really planning to harm you, would we be waiting here, beside the path, in the very darkest part of the forest?
