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>, Uros Bizjak <ubizjak at gmail 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>
- Date: Tue, 16 Sep 2014 17:15:49 +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> <CAOvf_xygAivauU2_s2dzCKt5nCZ_AbsTXOpj4u+ceg4ffvGhgA at mail dot gmail dot com> <CAOvf_xxr00v6dk=0EfS3ZETStdtT7OfczLD=xJs=-VGqc3nsdw at mail dot gmail dot com>
PING 2
On Mon, Sep 8, 2014 at 2:03 PM, Evgeny Stupachenko <evstupac@gmail.com> wrote:
> PING
>
> On Wed, Aug 27, 2014 at 7:50 PM, Evgeny Stupachenko <evstupac@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 <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~
>>>
>>>