This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, i386, AVX-512] Update extract_even_odd w/ AVX-512BW insns.
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Cc: Uros Bizjak <ubizjak at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 6 Oct 2015 04:18:45 -0700
- Subject: Re: [PATCH, i386, AVX-512] Update extract_even_odd w/ AVX-512BW insns.
- Authentication-results: sourceware.org; auth=none
- References: <20151001111155 dot GA17847 at msticlxl57 dot ims dot intel dot com> <20151002143741 dot GC5228 at msticlxl57 dot ims dot intel dot com> <CAMe9rOrzU-2TORezpfEfE+2CO_9kEdNwXrxH8onG3vU+GH9mqA at mail dot gmail dot com>
On Tue, Oct 6, 2015 at 4:05 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Oct 2, 2015 at 7:37 AM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
>> On 01 Oct 14:11, Kirill Yukhin wrote:
>>> Bootstrapped. New tests pass (fail w/o the change). Regtesting is in progress.
>>>
>>> Is it ok for trunk?
>>>
>>> gcc/
>>> * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
>>> (expand_vec_perm_even_odd_1): Handle V64QImode.
>>> (ix86_expand_vec_perm_const_1): Try expansion with
>>> expand_vec_perm_even_odd_trunc as well.
>>> * config/i386/sse.md (VI124_AVX512F): Rename to ...
>>> (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
>>> to V54QI.
>>> (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
>>> (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
>>> to V32HI and V16SI.
>>> (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
>>> (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
>>> (define_expand "vec_unpacks_lo_<mode>"): Ditto.
>>> (define_expand "vec_unpacks_hi_<mode>"): Ditto.
>>> (define_expand "vec_unpacku_lo_<mode>"): Ditto.
>>> (define_expand "vec_unpacku_hi_<mode>"): Ditto.
>>>
>>> gcc/testsuite/
>>> * gcc.target/i386/vect-pack-trunc-1.c: New test.
>>> * gcc.target/i386/vect-pack-trunc-2.c: Ditto.
>>> * gcc.target/i386/vect-perm-even-1.c: Ditto.
>>> * gcc.target/i386/vect-perm-odd-1.c: Ditto.
>>> * gcc.target/i386/vect-unpack-1.c: Ditto.
>>> * gcc.target/i386/vect-unpack-2.c: Ditto.
>> Checked into main trunk. I'll also check it into gcc-5-branch
>> if no objections from RMs next ww.
>>
>
> This caused:
>
> FAIL: gcc.target/i386/vect-perm-odd-1.c (test for excess errors)
>
> on gcc-5-branch.
>
vect-perm-odd-1.s: Assembler messages:
vect-perm-odd-1.s:233: Error: operand type mismatch for `vpor'
vect-perm-odd-1.s:240: Error: operand type mismatch for `vpor'
vpor %zmm1, %zmm2, %zmm1
It should be
vporq %zmm1, %zmm2, %zmm1
--
H.J.