[patch][x86] GFNI enabling [2/4]

Koval, Julia julia.koval@intel.com
Mon Oct 30 19:03:00 GMT 2017


Hi,
Fixed that.

gcc/
	* config.gcc: Add gfniintrin.h.
	* config/i386/gfniintrin.h: New.
	* config/i386/i386-builtin-types.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
	__builtin_ia32_vgf2p8affineinvqb_v64qi_mask, __builtin_ia32_vgf2p8affineinvqb_v32qi
	__builtin_ia32_vgf2p8affineinvqb_v32qi_mask, __builtin_ia32_vgf2p8affineinvqb_v16qi,
	__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
	* config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
	V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI, V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
	V64QI_FTYPE_V64QI_V64QI_INT): New types.
	* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
	* config/i386/immintrin.h: Include gfniintrin.h.
	* config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.

gcc/testsuite/
	* gcc.target/i386/avx-1.c: Handle new intrinsics.
	* gcc.target/i386/avx512-check.h: Check GFNI bit.
	* gcc.target/i386/avx512f-gf2p8affineinvqb-2.c: Runtime test.
	* gcc.target/i386/avx512vl-gf2p8affineinvqb-2.c: Runtime test.
	* gcc.target/i386/gfni-1.c: New.
	* gcc.target/i386/gfni-2.c: New.
	* gcc.target/i386/gfni-3.c: New.
	* gcc.target/i386/gfni-4.c: New.
	* gcc.target/i386/i386.exp: (check_effective_target_gfni): New. 
	* gcc.target/i386/sse-12.c: Handle new intrinsics. 
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto. 
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto. 
	* g++.dg/other/i386-3.C: Ditto.

> -----Original Message-----
> From: Kirill Yukhin [mailto:kirill.yukhin@gmail.com]
> Sent: Monday, October 30, 2017 11:27 AM
> To: Koval, Julia <julia.koval@intel.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>
> Subject: Re: [patch][x86] GFNI enabling [2/4]
> 
> On 17 Oct 12:58, Koval, Julia wrote:
> > Hi, this is the second patch of enabling GFNI ISASET. It adds GF2P8AFFINEINV
> instruction.
> > The instruction is described here:
> > https://software.intel.com/sites/default/files/managed/c5/15/architecture-
> instruction-set-extensions-programming-reference.pdf
> >
> > gcc/
> > 	* config.gcc: Add gfniintrin.h.
> > 	* config/i386/gfniintrin.h: New.
> > 	* config/i386/i386-builtin-types.def
> (__builtin_ia32_vgf2p8affineinvqb_v64qi,
> > 	__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
> __builtin_ia32_vgf2p8affineinvqb_v32qi
> > 	__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
> __builtin_ia32_vgf2p8affineinvqb_v16qi,
> > 	__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
> > 	* config/i386/i386-builtin.def
> (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
> > 	V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
> V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
> > 	V64QI_FTYPE_V64QI_V64QI_INT): New types.
> > 	* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
> > 	* config/i386/immintrin.h: Include gfniintrin.h.
> > 	* config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
> >
> > gcc/testsuite/
> > 	* gcc.target/i386/avx-1.c: Handle new intrinsics.
> > 	* gcc.target/i386/avx512-check.h: Check GFNI bit.
> > 	* gcc.target/i386/avx512f-gf2p8affineinvqb-2.c: Runtime test.
> > 	* gcc.target/i386/avx512vl-gf2p8affineinvqb-2.c: Runtime test.
> > 	* gcc.target/i386/gfni-1.c: New.
> > 	* gcc.target/i386/gfni-2.c: New.
> > 	* gcc.target/i386/gfni-3.c: New.
> > 	* gcc.target/i386/gfni-4.c: New.
> > 	* gcc.target/i386/i386.exp: (check_effective_target_gfni): New.
> > 	* gcc.target/i386/sse-13.c: Handle new intrinsics.
> > 	* gcc.target/i386/sse-23.c: Handle new intrinsics.
> >
> > Ok for trunk?
> Few comments:
> 1. Why copyright in config/i386/gfniintrin.h starts from 2014?
> 
> 2. I think few tests updates are missing: g++.dg/other/i386-2,3.c +
> gcc.target/i386/sse-12,14.c
> 
> --
> Thanks, K
> >
> > Thanks,
> > Julia
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-GF2P8AFFINEINVQB.PATCH
Type: application/octet-stream
Size: 112494 bytes
Desc: 0001-GF2P8AFFINEINVQB.PATCH
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20171030/924ab045/attachment.obj>


More information about the Gcc-patches mailing list