RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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.