On 10/16/2013 09:07 AM, Kirill Yukhin wrote: > I suspect gen_lowpart is bad turn when reload is completed, as > far as it can create new pseudo. gen_lowpart () may call > gen_reg_rtx (), which contain corresponging gcc_assert ().
False. gen_lowpart is perfectly safe post-reload. Indeed, taking the subreg of a hard register should arrive x = gen_rtx_REG_offset (op, outermode, final_regno, final_offset); in simplify_subreg. Have you encountered some specific problem with gen_lowpart? r~