aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-07-05 09:41:09 +0200
committerJan Beulich <jbeulich@suse.com>2023-07-05 09:41:09 +0200
commit2d11c99dfca3cc603dbbfafb3afc41689a68e40f (patch)
tree5fa200a9a6a7f3934d6451e7272ba0b03e79d999 /libcpp
parent607613e516670dd817e7467e774ed2e3440bdb21 (diff)
downloadgcc-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