x86: optimize EVEX packed integer logical instructions
authorJan Beulich <jbeulich@suse.com>
Mon, 1 Jul 2019 06:31:14 +0000 (08:31 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 1 Jul 2019 06:31:14 +0000 (08:31 +0200)
commita0a1771e895e6606a2a795c407e20aed73f69bd9
tree9b75ffcdaa3d8b5f343c148821ddb4da987aa88d
parentcd546e7bd2832c882e69809fdbeb7b376b62039e
x86: optimize EVEX packed integer logical instructions

As long as there's no write mask as well as no broadcast, and as long
as the scaled Disp8 wouldn't result in a shorter EVEX encoding, encode
VPAND{D,Q}, VPANDN{D,Q}, VPOR{D,Q}, and VPXOR{D,Q} acting on only the
lower 16 XMM/YMM registers using their VEX equivalents with -O1.

Also take the opportunity and avoid looping twice over all operands
when dealing with memory-with-displacement ones.
27 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/doc/c-i386.texi
gas/testsuite/gas/i386/optimize-1.d
gas/testsuite/gas/i386/optimize-1.s
gas/testsuite/gas/i386/optimize-1a.d
gas/testsuite/gas/i386/optimize-2.d
gas/testsuite/gas/i386/optimize-2.s
gas/testsuite/gas/i386/optimize-3.d
gas/testsuite/gas/i386/optimize-3.s
gas/testsuite/gas/i386/optimize-4.d
gas/testsuite/gas/i386/optimize-5.d
gas/testsuite/gas/i386/optimize-5.s
gas/testsuite/gas/i386/x86-64-optimize-2.d
gas/testsuite/gas/i386/x86-64-optimize-2.s
gas/testsuite/gas/i386/x86-64-optimize-2a.d
gas/testsuite/gas/i386/x86-64-optimize-2b.d
gas/testsuite/gas/i386/x86-64-optimize-3.d
gas/testsuite/gas/i386/x86-64-optimize-3.s
gas/testsuite/gas/i386/x86-64-optimize-4.d
gas/testsuite/gas/i386/x86-64-optimize-4.s
gas/testsuite/gas/i386/x86-64-optimize-5.d
gas/testsuite/gas/i386/x86-64-optimize-6.d
gas/testsuite/gas/i386/x86-64-optimize-6.s
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h