Hi! On Mon, Nov 05, 2018 at 11:08:39AM -0600, Aaron Sawdey wrote: > This does the same thing for bswap<mode>2 that I previously did for bswapdi2. > The predicates for bswap<mode>2_{load,store} are now > indexed_or_indirect_operand, > and bswap<mode>2 uses rs6000_force_indexed_or_indirect_mem to make sure the > address is appropriate for that predicate.
This looks fine, one thing: > --- gcc/config/rs6000/rs6000.md (revision 265753) > +++ gcc/config/rs6000/rs6000.md (working copy) > @@ -2411,9 +2411,15 @@ > src = force_reg (<MODE>mode, src); > > if (MEM_P (src)) > - emit_insn (gen_bswap<mode>2_load (dest, src)); > + { > + src = rs6000_force_indexed_or_indirect_mem (src); > + emit_insn (gen_bswap<mode>2_load (dest, src)); These two lines are indented a space too much. Okay with that fixed. Thanks! Segher