x86: also fold remaining multi-vector-size shift insns
authorJan Beulich <jbeulich@suse.com>
Fri, 18 Mar 2022 09:55:45 +0000 (10:55 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 18 Mar 2022 09:55:45 +0000 (10:55 +0100)
commitc4d0963383ad8ca0f0bf63c857b9462efdacff7c
treef0d5b26b001e3b39ed952c5e3df2ad2d672bd7d6
parenta548407ec2f8e9bc2d01d9774f6af45bbbd209e3
x86: also fold remaining multi-vector-size shift insns

By slightly relaxing the checking in operand_type_register_match() we
can fold the vector shift insns with an XMM source as well. While
strictly speaking an overlap in just one size (see the code comment) is
not enough (both operands could have multiple sizes with just a single
common one), this is good enough for all templates we have, or which
could sensibly / usefully appear (within the scope of the present
operand matching model).

Tightening this a little would be possible, but would require broadcast
related information to be passed into the function.
gas/config/tc-i386.c
opcodes/i386-opc.tbl
opcodes/i386-tbl.h