diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-07-05 09:41:09 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-07-05 09:41:09 +0200 |
commit | 2d11c99dfca3cc603dbbfafb3afc41689a68e40f (patch) | |
tree | 5fa200a9a6a7f3934d6451e7272ba0b03e79d999 /libcpp | |
parent | 607613e516670dd817e7467e774ed2e3440bdb21 (diff) | |
download | gcc-2d11c99dfca3cc603dbbfafb3afc41689a68e40f.zip gcc-2d11c99dfca3cc603dbbfafb3afc41689a68e40f.tar.gz gcc-2d11c99dfca3cc603dbbfafb3afc41689a68e40f.tar.bz2 |
x86: use VPTERNLOG also for certain andnot forms
When it's the memory operand which is to be inverted, using VPANDN*
requires a further load instruction. The same can be achieved by a
single VPTERNLOG*. Add two new alternatives (for plain memory and
embedded broadcast), adjusting the predicate for the first operand
accordingly.
Two pre-existing testcases actually end up being affected (improved) by
the change, which is reflected in updated expectations there.
gcc/
PR target/93768
* config/i386/sse.md (*andnot<mode>3): Add new alternatives
for memory form operand 1.
gcc/testsuite/
PR target/93768
* gcc.target/i386/avx512f-andn-di-zmm-2.c: New test.
* gcc.target/i386/avx512f-andn-si-zmm-2.c: Adjust expecations
towards generated code.
* gcc.target/i386/pr100711-3.c: Adjust expectations for 32-bit
code.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions