Enable VAES support [2/5]
authorJulia Koval <julia.koval@intel.com>
Tue, 12 Dec 2017 05:55:23 +0000 (06:55 +0100)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Tue, 12 Dec 2017 05:55:23 +0000 (05:55 +0000)
commite157d4567738df5cb009a3304ca910501d77585f
tree490dfa5dd77044d245bccc0cb6a451cbafc8af22
parentb7b0a4fa6026762073b117a8e6b664f2ec7dd9c7
Enable VAES support [2/5]

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.

From-SVN: r255572
12 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/i386-builtin.def
gcc/config/i386/immintrin.h
gcc/config/i386/sse.md
gcc/config/i386/vaesintrin.h [new file with mode: 0644]
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512-check.h
gcc/testsuite/gcc.target/i386/avx512f-aesdec-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512fvl-vaes-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-aesdec-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/i386.exp