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