Add AVX512 k-mask intrinsics

Programming / Compilers / GCC - hjl [138bc75d-0d04-0410-961f-82ee72b054a4] - 5 December 2016 11:18 UTC

gcc/

2016-12-05 Andrew Senkevich

- 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

- 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.

64cc527 Add AVX512 k-mask intrinsics
gcc/ChangeLog | 22 +++++
gcc/config/i386/avx512bwintrin.h | 100 ++++++++++++++++++++
gcc/config/i386/avx512dqintrin.h | 42 ++++++++
gcc/config/i386/avx512fintrin.h | 17 +++-
gcc/config/i386/i386-builtin-types.def | 28 ++++++
gcc/config/i386/i386-builtin.def | 18 ++++
gcc/config/i386/i386.c | 10 ++
gcc/testsuite/ChangeLog | 25 +++++
gcc/testsuite/gcc.target/i386/avx512bw-kandd-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kandnd-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kandnq-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kandq-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-knotd-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-knotq-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kord-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-korq-1.c | 18 ++++
.../gcc.target/i386/avx512bw-kunpckdq-3.c | 16 ++++
.../gcc.target/i386/avx512bw-kunpckwd-3.c | 16 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kxnord-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kxnorq-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-kandb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-kandnb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-knotb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-korb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-kxnorb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512dq-kxorb-1.c | 18 ++++
gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c | 1 -
gcc/testsuite/gcc.target/i386/avx512f-kunpckbw-3.c | 18 ++++
30 files changed, 635 insertions(+), 2 deletions(-)

Upstream: gcc.gnu.org


  • Share