Re: [PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-11-24 Thread Kirill Yukhin
On 24 Nov 09:35, Jakub Jelinek wrote:
> On Fri, Nov 24, 2017 at 09:34:07AM +0100, Eric Botcazou wrote:
> > > This seems to break the build for me:
> > > 
> > > In file included from
> > > /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:21:0:
> > > /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:30165:16: error:
> > > ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
> > >   BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST,
> > 
> > Confirmed:
> > 
> > /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c: In function ‘rtx_def* 
> > ix86_expand_builtin(tree, rtx, rtx, machine_mode, int)’:
> > /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37439:16: error: 
> > ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
> >if (fcode >= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST
> > ^
> > /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37440:19: error: 
> > ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST’ was not declared in this scope
> >&& fcode <= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST)
> >^
> > /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37443:48: error: 
> > ‘bdesc_special_args2’ was not declared in this scope
> >return ix86_expand_special_args_builtin (bdesc_special_args2 + i, 
> > exp,
> 
> It works now, Kirill has committed r255131 and r255132.
Sorry about that, folks. I've missed a conflict during patch application.

--
Thanks, K
> 
>   Jakub


Re: [PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-11-24 Thread Jakub Jelinek
On Fri, Nov 24, 2017 at 09:34:07AM +0100, Eric Botcazou wrote:
> > This seems to break the build for me:
> > 
> > In file included from
> > /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:21:0:
> > /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:30165:16: error:
> > ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
> >   BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST,
> 
> Confirmed:
> 
> /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c: In function ‘rtx_def* 
> ix86_expand_builtin(tree, rtx, rtx, machine_mode, int)’:
> /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37439:16: error: 
> ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
>if (fcode >= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST
> ^
> /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37440:19: error: 
> ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST’ was not declared in this scope
>&& fcode <= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST)
>^
> /home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37443:48: error: 
> ‘bdesc_special_args2’ was not declared in this scope
>return ix86_expand_special_args_builtin (bdesc_special_args2 + i, exp,

It works now, Kirill has committed r255131 and r255132.

Jakub


Re: [PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-11-24 Thread Eric Botcazou
> This seems to break the build for me:
> 
> In file included from
> /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:21:0:
> /home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:30165:16: error:
> ‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
>   BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST,

Confirmed:

/home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c: In function ‘rtx_def* 
ix86_expand_builtin(tree, rtx, rtx, machine_mode, int)’:
/home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37439:16: error: 
‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope
   if (fcode >= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST
^
/home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37440:19: error: 
‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST’ was not declared in this scope
   && fcode <= IX86_BUILTIN__BDESC_SPECIAL_ARGS2_LAST)
   ^
/home/eric/gnat/gnat-head/src/gcc/config/i386/i386.c:37443:48: error: 
‘bdesc_special_args2’ was not declared in this scope
   return ix86_expand_special_args_builtin (bdesc_special_args2 + i, exp,

-- 
Eric Botcazou


Re: [PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-11-23 Thread Marc Glisse

On Thu, 23 Nov 2017, Kirill Yukhin wrote:


Hello, Julia!
On 24 Oct 08:25, Koval, Julia wrote:

Hi,
This patch enables VPCOMPRESSB[W] instruction. The doc for isaset and 
instruction: 
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

Ok for trunk?

Your patch is OK for trunk. I;ve checked it in.


This seems to break the build for me:

In file included from 
/home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:21:0:
/home/glisse/repos/gcc/trunk/gcc/config/i386/i386.c:30165:16: error: 
‘IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST’ was not declared in this scope

 BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS2_FIRST,
^


--
Marc Glisse


Re: [PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-11-23 Thread Kirill Yukhin
Hello, Julia!
On 24 Oct 08:25, Koval, Julia wrote:
> Hi,
> This patch enables VPCOMPRESSB[W] instruction. The doc for isaset and 
> instruction: 
> https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
> 
> Ok for trunk?
Your patch is OK for trunk. I;ve checked it in.

--
Thanks, K


[PATCH][i386,AVX] Enable VBMI2 support [2/7]

2017-10-24 Thread Koval, Julia
Hi,
This patch enables VPCOMPRESSB[W] instruction. The doc for isaset and 
instruction: 
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

Ok for trunk?

gcc/
config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
_mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
_mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
_mm512_mask_compressstoreu_epi16): New.
config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
_mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
_mm_mask_compress_epi16, _mm_maskz_compress_epi16,
_mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
_mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
_mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
_mm256_mask_compressstoreu_epi8): New.
config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
VOID_FTYPE_PV8HI_V8HI_UQI): New types.
config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
__builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
__builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
__builtin_ia32_compresshi128_mask,
__builtin_ia32_compressstoreuqi512_mask,
__builtin_ia32_compressstoreuhi512_mask,
__builtin_ia32_compressstoreuqi256_mask,
__builtin_ia32_compressstoreuqi128_mask,
__builtin_ia32_compressstoreuhi256_mask,
__builtin_ia32_compressstoreuhi128_mask): New builtins.
config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
array for flags2.
(ix86_expand_special_args_builtin): Handle new types.
(s4fma_expand): Handle new builtin array.
config/i386/immintrin.h: Include new headers.
config/i386/sse.md (VI12_AVX512VLBW): New iterator.
(compress_mask, compressstore_mask): New patterns.

gcc/testsuite/
gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit.
gcc.target/i386/avx512f-vpcompressb-1.c: New test.
gcc.target/i386/avx512f-vpcompressb-2.c: Ditto.
gcc.target/i386/avx512f-vpcompressw-1.c: Ditto.
gcc.target/i386/avx512f-vpcompressw-2.c: Ditto.
gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto.
gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto.
gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto.
gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto.
gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New.


0004-VPCOMPRESSB-W-instruction.patch
Description: 0004-VPCOMPRESSB-W-instruction.patch