Hi, this patch enables VAESDEC instruction from VAES isaset, defined here: 
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

Ok for trunk?
Thanks,
Julia

gcc/
        * config.gcc: Add vaesintrin.h.
        * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): New 
type.
        * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
        __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): New 
builtins.
        * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
        * config/i386/immintrin.h: Include vaesintrin.h.
        * config/i386/sse.md (vaesdec_<mode>): New pattern.
        * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
        _mm_aesdec_epi128): New intrinsics.

gcc/testsuite/
        * gcc.target/i386/avx512-check.h: Handle bit_VAES.
        * gcc.target/i386/avx512f-aesdec-2.c: New test.
        * gcc.target/i386/avx512fvl-vaes-1.c: Ditto.
        * gcc.target/i386/avx512vl-aesdec-2.c: Ditto.
        * gcc.target/i386/i386.exp (check_effective_target_avx512vaes): New.

Attachment: 0002-VAESDEC.PATCH
Description: 0002-VAESDEC.PATCH

Reply via email to