aboutsummaryrefslogtreecommitdiff
path: root/libcpp/directives.cc
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-06-20 09:05:48 +0200
committerJan Beulich <jbeulich@suse.com>2023-06-20 09:05:48 +0200
commitd3a21558fda9da3ce094ea6ecd331ced07e9c6fb (patch)
tree07acde629299e76b0d0df0eaa339c8705e293410 /libcpp/directives.cc
parent963f87f8a65ec82f503ac4334a3da83b0a8a43b2 (diff)
downloadgcc-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/directives.cc')
0 files changed, 0 insertions, 0 deletions