RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-12 Thread Gerald Pfeifer
On Tue, 12 Dec 2017, Koval, Julia wrote:
> Here is the patch to update these files with my contributions. Ok for 
> trunk?

Nice, thank you.

The only change I'd suggest is -march=icelake to 
mark up the two options.

(No need to ask for any further approvals.)

Gerald


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-12 Thread Koval, Julia
Here is the patch to update these files with my contributions. Ok for trunk?

Thanks,
Julia

> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-
> ow...@gcc.gnu.org] On Behalf Of Gerald Pfeifer
> Sent: Tuesday, December 12, 2017 11:34 AM
> To: Koval, Julia <julia.ko...@intel.com>
> Cc: Kirill Yukhin <kirill.yuk...@gmail.com>; gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
> 
> On Tue, 12 Dec 2017, Koval, Julia wrote:
> > Looks good. How to put it there(sorry, noob question)?
> 
> Does https://gcc.gnu.org/about.html help?  If not, let me know
> and I'll work with you (and update those docs on the way).
> 
> Of course, even if things work for you, any suggestions on how
> to improve this little page are very welcome. :)
> 
> Gerald


patch
Description: patch


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-12 Thread Gerald Pfeifer
On Tue, 12 Dec 2017, Koval, Julia wrote:
> Looks good. How to put it there(sorry, noob question)?

Does https://gcc.gnu.org/about.html help?  If not, let me know 
and I'll work with you (and update those docs on the way).

Of course, even if things work for you, any suggestions on how
to improve this little page are very welcome. :)

Gerald


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-12 Thread Koval, Julia
Looks good. How to put it there(sorry, noob question)?

Thanks,
Julia

> -Original Message-
> From: Gerald Pfeifer [mailto:ger...@pfeifer.com]
> Sent: Saturday, December 09, 2017 2:49 PM
> To: Koval, Julia <julia.ko...@intel.com>
> Cc: Kirill Yukhin <kirill.yuk...@gmail.com>; GCC Patches  patc...@gcc.gnu.org>
> Subject: RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
> 
> Hi Julia,
> 
> On Mon, 4 Dec 2017, Koval, Julia wrote:
> > Do you think it is ok to copypaste it from GCC-6?
> 
> you mean copy, past, and adjust?  Yes, that should work.
> 
> > GCC now supports the Intel CPU, named Cannonlake through
> > -march=cannonlake. The switch enables the following ISA extensions:
> > AVX512VBMI, AVX512IFMA, SHA.
> > GCC now supports the Intel CPU, named and Icelake through
> > -march=icelake. The switch enables the following ISA extensions:
> > AVX512VNNI, GFNI, VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG,
> RDPID,
> > AVX512VPOPCNTDQ.
> 
> No comma before "named".
> 
> -march=
> 
> And perhaps "enables the AVX..., AVX...,and... ISA extensions"?
> 
> Gerald


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-09 Thread Gerald Pfeifer
Hi Julia,

On Mon, 4 Dec 2017, Koval, Julia wrote:
> Do you think it is ok to copypaste it from GCC-6?

you mean copy, past, and adjust?  Yes, that should work.

> GCC now supports the Intel CPU, named Cannonlake through 
> -march=cannonlake. The switch enables the following ISA extensions: 
> AVX512VBMI, AVX512IFMA, SHA.
> GCC now supports the Intel CPU, named and Icelake through 
> -march=icelake. The switch enables the following ISA extensions: 
> AVX512VNNI, GFNI, VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, 
> AVX512VPOPCNTDQ.

No comma before "named".

-march=

And perhaps "enables the AVX..., AVX...,and... ISA extensions"?

Gerald


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-12-03 Thread Koval, Julia
Hi Gerald,
Do you think it is ok to copypaste it from GCC-6?

GCC now supports the Intel CPU, named Cannonlake through -march=cannonlake. The 
switch enables the following ISA extensions: AVX512VBMI, AVX512IFMA, SHA.
GCC now supports the Intel CPU, named and Icelake through -march=icelake. The 
switch enables the following ISA extensions: AVX512VNNI, GFNI, VAES, 
AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ.

Thanks,
Julia

> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-
> ow...@gcc.gnu.org] On Behalf Of Gerald Pfeifer
> Sent: Sunday, December 03, 2017 6:51 PM
> To: Koval, Julia <julia.ko...@intel.com>; Kirill Yukhin 
> <kirill.yuk...@gmail.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>
> Subject: Re: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
> 
> Hi Julia, hi Kirill,
> 
> On Tue, 24 Oct 2017, Koval, Julia wrote:
> > This patch enables VPSHRD instruction.
> 
> packing a "random" of your contributions.  Can you please also think
> how to best document this in http://gcc.gnu.org/gcc-8/changes.html ?
> 
> Let me know if you need any help with the web side of things (beyond
> the brief notes in https://gcc.gnu.org/about.html )!
> 
> Gerald


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

2017-12-03 Thread Gerald Pfeifer
Hi Julia, hi Kirill,

On Tue, 24 Oct 2017, Koval, Julia wrote:
> This patch enables VPSHRD instruction. 

packing a "random" of your contributions.  Can you please also think
how to best document this in http://gcc.gnu.org/gcc-8/changes.html ?

Let me know if you need any help with the web side of things (beyond
the brief notes in https://gcc.gnu.org/about.html )!

Gerald


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

2017-11-28 Thread Kirill Yukhin
Hello Julia,
On 24 Oct 10:05, Koval, Julia wrote:
> Attached the patch
> 
> > -Original Message-
> > From: Koval, Julia
> > Sent: Tuesday, October 24, 2017 12:01 PM
> > To: GCC Patches <gcc-patches@gcc.gnu.org>
> > Cc: Kirill Yukhin <kirill.yuk...@gmail.com>
> > Subject: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
> > 
> > Hi,
> > This patch enables VPSHRD 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


RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]

2017-10-24 Thread Koval, Julia
Attached the patch

> -Original Message-
> From: Koval, Julia
> Sent: Tuesday, October 24, 2017 12:01 PM
> To: GCC Patches <gcc-patches@gcc.gnu.org>
> Cc: Kirill Yukhin <kirill.yuk...@gmail.com>
> Subject: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
> 
> Hi,
> This patch enables VPSHRD 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/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
>   _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16,
> _mm512_shrdi_epi32,
>   _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
> _mm512_shrdi_epi64,
>   _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New
> intrinsics.
>   config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
>   _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
>   _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
> _mm256_shrdi_epi32,
>   _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64,
> _mm256_shrdi_epi64,
>   _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
>   _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
>   _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64):
> Ditto.
>   config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
>   __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
>   __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
>   __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
>   __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
>   __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
>   __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
>   __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
>   __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
>   __builtin_ia32_vpshrd_v2di_mask): New builtins.
>   config/i386/sse.md (vpshrd_): New pattern.
> 
> gcc/testsuite/
>   gcc.target/i386/avx-1.c: Handle new intrinsics.
>   gcc.target/i386/sse-13.c: Ditto.
>   gcc.target/i386/sse-23.c: Ditto.
>   gcc.target/i386/avx512f-vpshrdd-2.c: New.
>   gcc.target/i386/avx512f-vpshrdq-2.c: Ditto.
>   gcc.target/i386/avx512vl-vpshrd-1.c: Ditto.
>   gcc.target/i386/avx512vl-vpshrdd-2.c: Ditto.
>   gcc.target/i386/avx512vl-vpshrdq-2.c: Ditto.


0007-VPSHRD-instruction.patch
Description: 0007-VPSHRD-instruction.patch


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

2017-10-24 Thread Koval, Julia
Hi,
This patch enables VPSHRD 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/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
_mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
_mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
_mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
_mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
_mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
_mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
__builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
__builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
__builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
__builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
__builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
__builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
__builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
__builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
__builtin_ia32_vpshrd_v2di_mask): New builtins.
config/i386/sse.md (vpshrd_): New pattern.

gcc/testsuite/
gcc.target/i386/avx-1.c: Handle new intrinsics.
gcc.target/i386/sse-13.c: Ditto.
gcc.target/i386/sse-23.c: Ditto.
gcc.target/i386/avx512f-vpshrdd-2.c: New.
gcc.target/i386/avx512f-vpshrdq-2.c: Ditto.
gcc.target/i386/avx512vl-vpshrd-1.c: Ditto.
gcc.target/i386/avx512vl-vpshrdd-2.c: Ditto.
gcc.target/i386/avx512vl-vpshrdq-2.c: Ditto.