[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

H.J. Lu  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |9.0

--- Comment #15 from H.J. Lu  ---
I checked in a set of patches to enable AVX512 scalar broadcast.
Please open a new bug if there are missing broadcasts.

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-22 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #14 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Mon Oct 22 07:35:48 2018
New Revision: 265370

URL: https://gcc.gnu.org/viewcvs?rev=265370=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for INT andnot

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

gcc/

PR target/72782
* config/i386/sse.md (*andnot3_bcst): New.

gcc/testsuite/

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

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-andn-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-andn-si-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-22 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #13 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Mon Oct 22 07:29:03 2018
New Revision: 265369

URL: https://gcc.gnu.org/viewcvs?rev=265369=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for INT logic

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

gcc/

PR target/72782
* config/i386/sse.md (*3_bcst): New.

gcc/testsuite/

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

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-xor-si-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-and-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-and-si-ymm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-or-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-or-si-ymm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-xor-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-xor-si-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-22 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #12 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Mon Oct 22 07:25:51 2018
New Revision: 265368

URL: https://gcc.gnu.org/viewcvs?rev=265368=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for INT add

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.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-si-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-di-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-add-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-add-si-ymm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-sub-si-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-sub-si-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-21 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #11 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sun Oct 21 20:30:06 2018
New Revision: 265359

URL: https://gcc.gnu.org/viewcvs?rev=265359=gcc=rev
Log:
i386: Update AVX512 FMSUB/FNMADD/FNMSUB tests

Update AVX512 tests to test the newly added FMSUB, FNMADD and FNMSUB
builtin functions.

PR target/72782
* gcc.target/i386/avx-1.c (__builtin_ia32_vfmsubpd512_mask): New.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.
* testsuite/gcc.target/i386/sse-13.c
(__builtin_ia32_vfmsubpd512_mask): Likewise.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.
* testsuite/gcc.target/i386/sse-23.c
(__builtin_ia32_vfmsubpd512_mask): Likewise.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/avx-1.c
trunk/gcc/testsuite/gcc.target/i386/sse-13.c
trunk/gcc/testsuite/gcc.target/i386/sse-23.c

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-21 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #10 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sun Oct 21 20:28:56 2018
New Revision: 265358

URL: https://gcc.gnu.org/viewcvs?rev=265358=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FNMSUB

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FNMSUB operations.  In order to
support AVX512 memory broadcast for FNMSUB, FNMSUB builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use
__builtin_ia32_vfnmsubpd512_mask.
(_mm512_mask_fnmsub_round_pd): Likewise.
(_mm512_fnmsub_pd): Likewise.
(_mm512_mask_fnmsub_pd): Likewise.
(_mm512_maskz_fnmsub_round_pd): Use
__builtin_ia32_vfnmsubpd512_maskz.
(_mm512_maskz_fnmsub_pd): Likewise.
(_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask.
(_mm512_mask_fnmsub_round_ps): Likewise.
(_mm512_fnmsub_ps): Likewise.
(_mm512_mask_fnmsub_ps): Likewise.
(_mm512_maskz_fnmsub_round_ps): Use
__builtin_ia32_vfnmsubps512_maskz.
(_mm512_maskz_fnmsub_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use
__builtin_ia32_vfnmsubpd256_mask.
(_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz.
(_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz.
(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
(_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz.
(_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask.
(_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz.
* config/i386/fmaintrin.h (_mm_fnmsub_pd): Use
__builtin_ia32_vfnmsubpd.
(_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256.
(_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps.
(_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256.
(_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3.
(_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfnmsubpd256_mask,
__builtin_ia32_vfnmsubpd256_maskz,
__builtin_ia32_vfnmsubpd128_mask,
__builtin_ia32_vfnmsubpd128_maskz,
__builtin_ia32_vfnmsubps256_mask,
__builtin_ia32_vfnmsubps256_maskz,
__builtin_ia32_vfnmsubps128_mask,
__builtin_ia32_vfnmsubps128_maskz,
__builtin_ia32_vfnmsubpd512_mask,
__builtin_ia32_vfnmsubpd512_maskz,
__builtin_ia32_vfnmsubps512_mask,
__builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3,
__builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps,
__builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and.
__builtin_ia32_vfnmsubpd256.
* config/i386/sse.md (fma4i_fnmsub_): New.
(_fnmsub__maskz): Likewise.
(*fma_fnmsub__bcst_1):
Likewise.
(*fma_fnmsub__bcst_2):
Likewise.
(*fma_fnmsub__bcst_3):
Likewise.
(fmai_vmfnmsub_): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fnmsub-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/avx512fintrin.h
trunk/gcc/config/i386/avx512vlintrin.h
trunk/gcc/config/i386/fmaintrin.h

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-21 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #9 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sun Oct 21 20:27:09 2018
New Revision: 265357

URL: https://gcc.gnu.org/viewcvs?rev=265357=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FNMADD

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FNMADD operations.  In order to
support AVX512 memory broadcast for FNMADD, FNMADD builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use
__builtin_ia32_vfnmaddpd512_mask.
(_mm512_mask_fnmadd_round_pd): Likewise.
(_mm512_fnmadd_pd): Likewise.
(_mm512_mask_fnmadd_pd): Likewise.
(_mm512_maskz_fnmadd_round_pd): Use
__builtin_ia32_vfnmaddpd512_maskz.
(_mm512_maskz_fnmadd_pd): Likewise.
(_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask.
(_mm512_mask_fnmadd_round_ps): Likewise.
(_mm512_fnmadd_ps): Likewise.
(_mm512_mask_fnmadd_ps): Likewise.
(_mm512_maskz_fnmadd_round_ps): Use
__builtin_ia32_vfnmaddps512_maskz.
(_mm512_maskz_fnmadd_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use
__builtin_ia32_vfnmaddpd256_mask.
(_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz.
(_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz.
(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
(_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz.
(_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask.
(_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz.
* config/i386/fmaintrin.h (_mm_fnmadd_pd): Use
__builtin_ia32_vfnmaddpd.
(_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256.
(_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps.
(_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256.
(_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3.
(_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfnmaddpd256_mask,
__builtin_ia32_vfnmaddpd256_maskz,
__builtin_ia32_vfnmaddpd128_mask,
__builtin_ia32_vfnmaddpd128_maskz,
__builtin_ia32_vfnmaddps256_mask,
__builtin_ia32_vfnmaddps256_maskz,
__builtin_ia32_vfnmaddps128_mask,
__builtin_ia32_vfnmaddps128_maskz,
__builtin_ia32_vfnmaddpd512_mask,
__builtin_ia32_vfnmaddpd512_maskz,
__builtin_ia32_vfnmaddps512_mask,
__builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3,
__builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps,
__builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and.
__builtin_ia32_vfnmaddpd256.
* config/i386/sse.md (fma4i_fnmadd_): New.
(_fnmadd__maskz): Likewise.
(*fma_fnmadd__bcst_1):
Likewise.
(*fma_fnmadd__bcst_2):
Likewise.
(*fma_fnmadd__bcst_3):
Likewise.
(fmai_vmfnmadd_): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fnmadd-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/avx512fintrin.h
trunk/gcc/config/i386/avx512vlintrin.h
trunk/gcc/config/i386/fmaintrin.h

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-21 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #8 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sun Oct 21 20:24:50 2018
New Revision: 265356

URL: https://gcc.gnu.org/viewcvs?rev=265356=gcc=rev
Log:
Enable AVX512 memory broadcast for FMSUB

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FMSUB operations.  In order to
support AVX512 memory broadcast for FMSUB, FMSUB builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use
__builtin_ia32_vfmsubpd512_mask.
(_mm512_mask_fmsub_round_pd): Likewise.
(_mm512_fmsub_pd): Likewise.
(_mm512_mask_fmsub_pd): Likewise.
(_mm512_maskz_fmsub_round_pd): Use
__builtin_ia32_vfmsubpd512_maskz.
(_mm512_maskz_fmsub_pd): Likewise.
(_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask.
(_mm512_mask_fmsub_round_ps): Likewise.
(_mm512_fmsub_ps): Likewise.
(_mm512_mask_fmsub_ps): Likewise.
(_mm512_maskz_fmsub_round_ps): Use
__builtin_ia32_vfmsubps512_maskz.
(_mm512_maskz_fmsub_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use
__builtin_ia32_vfmsubpd256_mask.
(_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz.
(_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz.
(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
(_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz.
(_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask.
(_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz.
* config/i386/fmaintrin.h (_mm_fmsub_pd): Use
__builtin_ia32_vfmsubpd.
(_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256.
(_mm_fmsub_ps): Use __builtin_ia32_vfmsubps.
(_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256.
(_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3.
(_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfmsubpd256_mask,
__builtin_ia32_vfmsubpd256_maskz,
__builtin_ia32_vfmsubpd128_mask,
__builtin_ia32_vfmsubpd128_maskz,
__builtin_ia32_vfmsubps256_mask,
__builtin_ia32_vfmsubps256_maskz,
__builtin_ia32_vfmsubps128_mask,
__builtin_ia32_vfmsubps128_maskz,
__builtin_ia32_vfmsubpd512_mask,
__builtin_ia32_vfmsubpd512_maskz,
__builtin_ia32_vfmsubps512_mask,
__builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3,
__builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps,
__builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and.
__builtin_ia32_vfmsubpd256.
* config/i386/sse.md (fma4i_fmsub_): New.
(_fmsub__maskz): Likewise.
(*fma_fmsub__bcst_1):
Likewise.
(*fma_fmsub__bcst_2):
Likewise.
(*fma_fmsub__bcst_3):
Likewise.
(fmai_vmfmsub_): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fmsub-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fmsub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-7.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-8.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/avx512fintrin.h
trunk/gcc/config/i386/avx512vlintrin.h
trunk/gcc/config/i386/fmaintrin.h
trunk/gcc/config/i386/i386-builtin.def
trunk/gcc/config/i386/sse.md

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-21 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #7 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sun Oct 21 10:35:36 2018
New Revision: 265351

URL: https://gcc.gnu.org/viewcvs?rev=265351=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FP mul

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

gcc/

PR target/72782
* config/i386/sse.md (*mul3_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-mul-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-mul-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512vl-mul-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-mul-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-mul-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-mul-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-mul-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-20 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #6 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Sat Oct 20 20:41:10 2018
New Revision: 265345

URL: https://gcc.gnu.org/viewcvs?rev=265345=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FP div

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

gcc/

PR target/72782
* config/i386/sse.md (*_div3_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-div-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-div-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-div-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-div-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-div-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-div-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-19 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #5 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Fri Oct 19 09:13:34 2018
New Revision: 265311

URL: https://gcc.gnu.org/viewcvs?rev=265311=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FP add

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

gcc/

PR target/72782
* config/i386/sse.md
(*3_bcst_1): New.
(*add3_bcst_2): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512-binop-1.h: New file.
* gcc.target/i386/avx512-binop-2.h: Likewise.
* gcc.target/i386/avx512-binop-3.h: Likewise.
* gcc.target/i386/avx512-binop-4.h: Likewise.
* gcc.target/i386/avx512-binop-5.h: Likewise.
* gcc.target/i386/avx512-binop-6.h: Likewise.
* gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-1.h
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-2.h
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-3.h
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-4.h
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-5.h
trunk/gcc/testsuite/gcc.target/i386/avx512-binop-6.h
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-add-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-sub-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-add-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-add-sf-ymm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-sub-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-sub-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-18 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #4 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Thu Oct 18 20:38:41 2018
New Revision: 265288

URL: https://gcc.gnu.org/viewcvs?rev=265288=gcc=rev
Log:
i386: Enable AVX512 memory broadcast for FMA

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

gcc/

PR target/72782
* config/i386/sse.md (VF_AVX512): New.
(avx512bcst): Likewise.
(*fma_fmadd__bcst_1):
Likewise.
(*fma_fmadd__bcst_2):
Likewise.
(*fma_fmadd__bcst_3):
Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512-fma-1.h: New file.
* gcc.target/i386/avx512-fma-2.h: Likewise.
* gcc.target/i386/avx512-fma-3.h: Likewise.
* gcc.target/i386/avx512-fma-4.h: Likewise.
* gcc.target/i386/avx512-fma-5.h: Likewise.
* gcc.target/i386/avx512-fma-6.h: Likewise.
* gcc.target/i386/avx512-fma-7.h: Likewise.
* gcc.target/i386/avx512-fma-8.h: Likewise.
* gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-1.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-2.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-3.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-4.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-5.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-6.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-7.h
trunk/gcc/testsuite/gcc.target/i386/avx512-fma-8.h
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-df-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-3.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-4.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-5.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-6.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-7.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-8.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c
trunk/gcc/testsuite/gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-14 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2018-10-15
 Ever confirmed|0   |1

--- Comment #3 from H.J. Lu  ---
Please try my hjl/pr72782/master branch.

[Bug target/72782] AVX512: No support for scalar broadcasts

2018-10-02 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #2 from H.J. Lu  ---
Please try hjl/pr72782/master branch at

https://github.com/hjl-tools/gcc

[Bug target/72782] AVX512: No support for scalar broadcasts

2016-08-10 Thread wen...@mitsuba-renderer.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72782

--- Comment #1 from Wenzel Jakob  ---
Looks like this issue was first reported in 2014 but got stuck -- see Bug
63351.