This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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?

Thanks,
Julia

Attachment: 0002-GF2P8AFFINEINVQB-instruction.patch
Description: 0002-GF2P8AFFINEINVQB-instruction.patch


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]