The rotate insn appeared right after expand. I've done it similar to define_insn_and_split "*avx_vperm_broadcast_<mode>". I don't see any potential losses on splitting that after reload.
On Tue, Aug 26, 2014 at 8:29 PM, Richard Henderson <r...@redhat.com> wrote: > On 08/26/2014 05:59 AM, Evgeny Stupachenko wrote: >> +(define_insn_and_split "avx2_rotate<mode>_perm" >> + [(set (match_operand:V_256 0 "register_operand" "=&x") >> + (vec_select:V_256 >> + (match_operand:V_256 1 "register_operand" "x") >> + (match_parallel 2 "palignr_operand" >> + [(match_operand 3 "const_int_operand" "n")])))] >> + "TARGET_AVX2" >> + "#" >> + "&& reload_completed" >> + [(const_int 0)] > > Why are you waiting until after reload to expand this? It's only the > vec_select parallel that determines which direction the palignr should be > done. > > This seems like something you could do during permutation expansion. > > > r~ > >