Add AVX512 k-mask intrinsics
commit64cc5274752e58a8dfe580a23d6791b55f9d771c
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2016 17:18:42 +0000 (5 17:18 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2016 17:18:42 +0000 (5 17:18 +0000)
treec5a3f530de27935be2a3bd2546f992b7557ca461
parent0f38b4905ef7f0416e6af4d6bd77373429d3d695
Add AVX512 k-mask intrinsics

gcc/

2016-12-05  Andrew Senkevich  <andrew.senkevich@intel.com>

* config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
* config/i386/avx512dqintrin.h: Ditto.
* config/i386/avx512fintrin.h: Ditto.
* config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR,
UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR,
UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI,
UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT,
UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT,
UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New
function types.
* config/i386/i386-builtin.def (__builtin_ia32_knotqi,
__builtin_ia32_knotsi, __builtin_ia32_knotdi,
__builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi,
__builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi,
__builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi,
__builtin_ia32_kxordi, __builtin_ia32_kandqi,
__builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi,
__builtin_ia32_kandnsi, __builtin_ia32_kandndi): New.
* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.

gcc/testsuite/

2016-12-05  Andrew Senkevich  <andrew.senkevich@intel.com>

* gcc.target/i386/avx512bw-kandd-1.c: New.
* gcc.target/i386/avx512bw-kandnd-1.c: Ditto.
* gcc.target/i386/avx512bw-kandnq-1.c: Ditto.
* gcc.target/i386/avx512bw-kandq-1.c: Ditto.
* gcc.target/i386/avx512bw-knotd-1.c: Ditto.
* gcc.target/i386/avx512bw-knotq-1.c: Ditto.
* gcc.target/i386/avx512bw-kord-1.c: Ditto.
* gcc.target/i386/avx512bw-korq-1.c: Ditto.
* gcc.target/i386/avx512bw-kunpckdq-3.c: Ditto.
* gcc.target/i386/avx512bw-kunpckwd-3.c: Ditto.
* gcc.target/i386/avx512bw-kxnord-1.c: Ditto.
* gcc.target/i386/avx512bw-kxnorq-1.c: Ditto.
* gcc.target/i386/avx512bw-kxord-1.c: Ditto.
* gcc.target/i386/avx512bw-kxorq-1.c: Ditto.
* gcc.target/i386/avx512dq-kandb-1.c: Ditto.
* gcc.target/i386/avx512dq-kandnb-1.c: Ditto.
* gcc.target/i386/avx512dq-knotb-1.c: Ditto.
* gcc.target/i386/avx512dq-korb-1.c: Ditto.
* gcc.target/i386/avx512dq-kxnorb-1.c: Ditto.
* gcc.target/i386/avx512dq-kxorb-1.c: Ditto.
* gcc.target/i386/avx512f-kunpckbw-3.c: Ditto.
* gcc.target/i386/avx512f-kandnw-1.c: Removed unneeded check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243265 138bc75d-0d04-0410-961f-82ee72b054a4
30 files changed:
gcc/ChangeLog
gcc/config/i386/avx512bwintrin.h
gcc/config/i386/avx512dqintrin.h
gcc/config/i386/avx512fintrin.h
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512bw-kandd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kandnd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kandnq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kandq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-knotd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-knotq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kord-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-korq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kunpckdq-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kxnord-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kxnorq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kandb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kandnb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-knotb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-korb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kxnorb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kxorb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c
gcc/testsuite/gcc.target/i386/avx512f-kunpckbw-3.c [new file with mode: 0644]