This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH x86] Enable v64qi permutations.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Ilya Tocar <tocarip dot intel at gmail dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 6 Dec 2014 09:57:34 +0100
- Subject: Re: [PATCH x86] Enable v64qi permutations.
- Authentication-results: sourceware.org; auth=none
- References: <20141204094959 dot GA67582 at msticlxl7 dot ims dot intel dot com> <CAMe9rOoQ+TiWhZEeMS0_9KZ_+pti8AFDRD56Jv7wj5PUqvdr3w at mail dot gmail dot com> <20141204115733 dot GA1923 at tucnak dot redhat dot com> <CAMe9rOpFcFkAkxzeZub2bqM8pzRf3D4-z7jcjpaJX+-i=p-HnA at mail dot gmail dot com> <20141204120426 dot GB1923 at tucnak dot redhat dot com> <CAFULd4bzTPzvOfmEv-Ov4_WeRPE4Vu=sJHEUiDYk-bnqj+FRPA at mail dot gmail dot com> <CAFULd4b55nfsQdsdQ2KfisY78VMz+OWDtH1RL=Xh2y2f9FNizg at mail dot gmail dot com> <20141204135359 dot GB16358 at msticlxl7 dot ims dot intel dot com> <CAFULd4b617henfE8cr8Xzi+KksVSzB3=rYkrx_=k_9kr8M-M1w at mail dot gmail dot com> <20141205163302 dot GA48900 at msticlxl7 dot ims dot intel dot com>
On Fri, Dec 5, 2014 at 5:33 PM, Ilya Tocar <tocarip.intel@gmail.com> wrote:
> On 04 Dec 15:16, Uros Bizjak wrote:
>> On Thu, Dec 4, 2014 at 2:53 PM, Ilya Tocar <tocarip.intel@gmail.com> wrote:
>>
>> >> >>> >> Can you add a few testcases?
>> >> >>> >
>> >> >>> > Isn't it already covered by gcc.dg/torture/vshuf* ?
>> >> >>> >
>> >> >>>
>> >> >>> I didn't see them fail on my machines today.
>> >> >>
>> >> >> Those are executable testcases, those better should not fail.
>> >> >> The patch just improved code generation and the testcases test
>> >> >> if the improved code generation works well.
>> >> >> Did you mean some scan-assembler test that verifies the better code
>> >> >> generation? Guess it is possible, though fragile.
>> >> >
>> >> > I think that existing executable testcases adequately cover the
>> >> > functionality of the patch.
>> >> >
>> >> > The patch is OK.
>> >>
>> >> BTW, the ChangeLog is missing.
>> >>
>> > * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
>> > (expand_vec_perm_broadcast_1): Ditto.
>> > (expand_vec_perm_vpermi2_vpshub2): New.
>> > (ix86_expand_vec_perm_const_1): Use it.
>> > (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
>> > * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
>> > (VEC_PERM_CONST): Ditto.
>> >> index ca5d720..6252e7e 100644
>> >> --- a/gcc/config/i386/sse.md
>> >> +++ b/gcc/config/i386/sse.md
>> >> @@ -10678,7 +10678,7 @@
>> >> (V8SF "TARGET_AVX2") (V4DF "TARGET_AVX2")
>> >> (V16SF "TARGET_AVX512F") (V8DF "TARGET_AVX512F")
>> >> (V16SI "TARGET_AVX512F") (V8DI "TARGET_AVX512F")
>> >> - (V32HI "TARGET_AVX512BW")])
>> >> + (V32HI "TARGET_AVX512BW") (V64QI "TARGET_AVX512VBMI")])
>> >>
>> >> I don't think change for VBMI target belongs in this patch.
>> >>
>> > Those changes enable non-const v64qi permutes
>> > (via single vpermi2b insn), should I split them into separate patch?
>>
>> If they are not on the same topic, then please yes. Please don't mix
>> separate issues together.
>>
> OK.
> Patch bellow adds variable v64qi permutations.
> OK for trunk?
>
> (I plan to commit both of them simultaneously, if this part is approved)
>
> * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
> * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
OK.
Thanks,
Uros.