On Tue, Sep 16, 2014 at 6:15 AM, Evgeny Stupachenko <evstu...@gmail.com> wrote: > PING 2 > > On Mon, Sep 8, 2014 at 2:03 PM, Evgeny Stupachenko <evstu...@gmail.com> wrote: >> PING >> >> On Wed, Aug 27, 2014 at 7:50 PM, Evgeny Stupachenko <evstu...@gmail.com> >> wrote: >>> 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. >>>> >>>>
Assuming your change is triggered today without any additional changes you should include some testcases. For now, it doesn't show if it does anything useful. -- H.J.