On Tue, May 20, 2014 at 5:02 AM, Mike Stump <mikest...@comcast.net> wrote: > 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. One problem is load/store_multiple only supports consecutive registers, while targets like arm and aarch64 supports load/store of non-consecutive registers.
Thanks, bin -- Best Regards.