Add AVX512 k-mask intrinsics.
authorAndrew Senkevich <andrew.senkevich@intel.com>
Fri, 20 Jan 2017 08:37:13 +0000 (08:37 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Fri, 20 Jan 2017 08:37:13 +0000 (08:37 +0000)
commitd8ea3e7c3cd8187d6332759c42fc448e5ed1e774
treecd6caa285abfcb60bd953c49a60d94e6c2c759a7
parent8d67fcd84efbfc5bd5459a44c09cc82ee0e34457
Add AVX512 k-mask intrinsics.

gcc/
* config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
* config/i386/avx512dqintrin.h: Ditto.
* config/i386/avx512fintrin.h: Ditto.
* config/i386/i386-builtin-types.def: Add new types.
* gcc/config/i386/i386.c: Handle new types.
* config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
(__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
(__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
(__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
(__builtin_ia32_kshiftridi): New.
* config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.

gcc/testsuite/
* gcc.target/i386/avx512bw-kshiftld-1.c: New test.
* gcc.target/i386/avx512bw-kshiftlq-1.c: Ditto.
* gcc.target/i386/avx512dq-kshiftlb-1.c: Ditto.
* gcc.target/i386/avx512f-kshiftlw-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrd-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrq-1.c: Ditto.
* gcc.target/i386/avx512dq-kshiftrb-1.c: Ditto.
* gcc.target/i386/avx512f-kshiftrw-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftld-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftlq-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrd-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
* gcc.target/i386/avx512dq-kshiftlb-2.c: Ditto.
* gcc.target/i386/avx512dq-kshiftrb-2.c: Ditto.
* gcc.target/i386/avx512f-kshiftlw-2.c: Ditto.
* gcc.target/i386/avx512f-kshiftrw-2.c: Ditto.
* gcc.target/i386/avx-1.c: Test new intrinsics.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r244685
28 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/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-1.c
gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kshiftlb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kshiftlb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kshiftrb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512dq-kshiftrb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-kshiftlw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-kshiftlw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-kshiftrw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-kshiftrw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse-13.c
gcc/testsuite/gcc.target/i386/sse-23.c