i386: Enable AVX512 memory broadcast for INT add

Programming / Compilers / GCC - hjl [138bc75d-0d04-0410-961f-82ee72b054a4] - 22 October 2018 07:25 EDT

Many AVX512 vector operations can broadcast from a scalar memory source. This patch enables memory broadcast for INT add operations.

gcc/

PR target/72782
- config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI,
V4DI, V16SI and V8DI. (*sub3_bcst): New. (*add3_bcst): Likewise.

gcc/testsuite/

PR target/72782
- gcc.target/i386/avx512f-add-di-zmm-1.c: New test.
- gcc.target/i386/avx512f-add-si-zmm-1.c: Likewise.
- gcc.target/i386/avx512f-add-si-zmm-2.c: Likewise.
- gcc.target/i386/avx512f-add-si-zmm-3.c: Likewise.
- gcc.target/i386/avx512f-add-si-zmm-4.c: Likewise.
- gcc.target/i386/avx512f-add-si-zmm-5.c: Likewise.
- gcc.target/i386/avx512f-add-si-zmm-6.c: Likewise.
- gcc.target/i386/avx512f-sub-di-zmm-1.c: Likewise.
- gcc.target/i386/avx512f-sub-si-zmm-1.c: Likewise.
- gcc.target/i386/avx512f-sub-si-zmm-2.c: Likewise.
- gcc.target/i386/avx512f-sub-si-zmm-3.c: Likewise.
- gcc.target/i386/avx512f-sub-si-zmm-4.c: Likewise.
- gcc.target/i386/avx512f-sub-si-zmm-5.c: Likewise.
- gcc.target/i386/avx512vl-add-si-xmm-1.c: Likewise.
- gcc.target/i386/avx512vl-add-si-ymm-1.c: Likewise.
- gcc.target/i386/avx512vl-sub-si-xmm-1.c: Likewise.
- gcc.target/i386/avx512vl-sub-si-ymm-1.c: Likewise.

6354599e010 i386: Enable AVX512 memory broadcast for INT add
gcc/ChangeLog | 8 ++++++
gcc/config/i386/sse.md | 29 +++++++++++++++++++++-
gcc/testsuite/ChangeLog | 21 ++++++++++++++++
.../gcc.target/i386/avx512f-add-di-zmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-2.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-3.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-4.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-5.c | 12 +++++++++
.../gcc.target/i386/avx512f-add-si-zmm-6.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-di-zmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-si-zmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-si-zmm-2.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-si-zmm-3.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-si-zmm-4.c | 12 +++++++++
.../gcc.target/i386/avx512f-sub-si-zmm-5.c | 12 +++++++++
.../gcc.target/i386/avx512vl-add-si-xmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512vl-add-si-ymm-1.c | 12 +++++++++
.../gcc.target/i386/avx512vl-sub-si-xmm-1.c | 12 +++++++++
.../gcc.target/i386/avx512vl-sub-si-ymm-1.c | 12 +++++++++
20 files changed, 261 insertions(+), 1 deletion(-)

Upstream: gcc.gnu.org


  • Share