This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/2, x86] Add palignr support for AVX2.
- From: Evgeny Stupachenko <evstupac at gmail dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Biener <rguenther at suse dot de>, Uros Bizjak <ubizjak at gmail dot com>
- Date: Wed, 27 Aug 2014 19:50:54 +0400
- Subject: Re: [PATCH 1/2, x86] Add palignr support for AVX2.
- Authentication-results: sourceware.org; auth=none
- References: <CAOvf_xx3-VpgN8YDxJBPvzzNGNykUPoLdU6xThW_QBN7byy5rw at mail dot gmail dot com> <535E909A dot 7040205 at redhat dot com> <CAOvf_xygddE6yxkp=+SZtVz+bvVciH5YfH1Cwy1WxdPHCgrbtg at mail dot gmail dot com> <535EC233 dot 7000500 at redhat dot com> <CAOvf_xxq6PNN2KLpA8yoB2jjgmy-UAOvij_ghgsKPkZnsu2Rkg at mail dot gmail dot com> <537A23F7 dot 2060601 at redhat dot com> <CAOvf_xwYJpQ0H9=MrLzUd40JDksZ8Tfsks2=8ZW4MfR_wCjU1A at mail dot gmail dot com> <53BAB164 dot 7000006 at redhat dot com> <CAOvf_xy20vC4h_kzyDAE0D_Pgm-2aoi3C9yxesoT=n4TVcANcg at mail dot gmail dot com> <CAOvf_xzsTEtRy+Sz+JaeEZDyd_A7yTqh-kQrpSMNssWdp3hQ3g at mail dot gmail dot com> <CAMe9rOrVkSgMCjCNmU7+SSyT-BLLQ6myWfq+K-WjirdzaZtYMw at mail dot gmail dot com> <CAOvf_xwh+0j-9YAgJCxKQSoNNJfq9KYr_iSLw=43JhFxAuOfPg at mail dot gmail dot com> <53FCB5ED dot 7040209 at redhat dot com>
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 <rth@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~
>
>