diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-06-20 09:05:48 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-06-20 09:05:48 +0200 |
commit | d3a21558fda9da3ce094ea6ecd331ced07e9c6fb (patch) | |
tree | 07acde629299e76b0d0df0eaa339c8705e293410 /libcpp | |
parent | 963f87f8a65ec82f503ac4334a3da83b0a8a43b2 (diff) | |
download | gcc-d3a21558fda9da3ce094ea6ecd331ced07e9c6fb.zip gcc-d3a21558fda9da3ce094ea6ecd331ced07e9c6fb.tar.gz gcc-d3a21558fda9da3ce094ea6ecd331ced07e9c6fb.tar.bz2 |
x86: correct and improve "*vec_dupv2di"
The input constraint for the %vmovddup alternative was wrong, as the
upper 16 XMM registers require AVX512VL to be used with this insn. To
compensate, introduce a new alternative permitting all 32 registers, by
broadcasting to the full 512 bits in that case if AVX512VL is not
available.
gcc/
* config/i386/sse.md (vec_dupv2di): Correct %vmovddup input
constraint. Add new AVX512F alternative.
gcc/testsuite/
* gcc.target/i386/avx512f-dupv2di.c: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions