On May 19, 2014, at 10:30 AM, Jeff Law <l...@redhat.com> wrote: >> Yes, I think it's more than upsizing the mode. There is another >> example from one of x86's candidate peephole patch at >> https://gcc.gnu.org/ml/gcc-patches/2014-04/msg00467.html >> >> The patch wants to do below transformation, which I think is very >> target dependent. > Presumably there's no way to go through an expander here?
> The idea being that common cases where a pair moves can be turned into a > single wider move without having to write target code to make that happen > much of the time. ie 2xQI->HI, 2xHI->SI, 2xSI->DI 2xSF->DF. For things > outside those simple cases, fall back to a target hook or a target expander. For completeness, load_multiple can handle quite a bit in a generic way. For example, mine is wired to support 3 DI.