Nigel Stephens <nigel@xxxxxxxx> writes: >>If we handle it in a target-independent way, with each insn exposed >>separately, we will be able to optimize special cases better. >>We'll also get the usual scheduling benefits. > > I agree that we should open-code it for the obvious reasons, but does it > have to be target independent, or could/should we prototype it with > define_expand? I think we should only use define_expands if there's a truly MIPS-specific feature in the expansion (as there is in the block move stuff, for example, where we use left/right loads and stores). Now obviously I'm only guessing what insn sequence you're using, but I suspect it doesn't involve anything that the middle-end couldn't work out from stock optabs. If there are different trade-offs to be made during the expansion, they should probably be predicated on rtx_costs. Richard