]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
x86: Check XMM destination when optimizing 128-bit VPBROADCASTQ
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 27 May 2026 00:39:16 +0000 (08:39 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 27 May 2026 23:09:29 +0000 (07:09 +0800)
commitc117ca0fc27654355839ee75010f25d46e6aeecd
treede4e1082c87fb3b9a3aeba7a40242318255261a0
parentca85c8b554c85b0baff9494a1356333c6e5953d5
x86: Check XMM destination when optimizing 128-bit VPBROADCASTQ

commit eb4031cb20aa710834be891f8638e04dbba81edc
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Jul 4 17:07:26 2023 +0200

    x86: optimize 128-bit VPBROADCASTQ to VPUNPCKLQDQ

was supposed to optimize

vpbroadcastq %xmmN, %xmmM  -> vpunpcklqdq %xmmN, %xmmN, %xmmM (N < 8)

But it didn't check if the destination operand is XMM.  As the result, it
turned:

vpbroadcastq %xmmN, %ymmM

into

vpunpcklqdq %xmmN, %xmmN, %xmmM

Fixing it by checking XMM destination.

PR gas/34171
* config/tc-i386.c (optimize_encoding): Check XMM destination
when optimizing 128-bit VPBROADCASTQ.
* testsuite/gas/i386/optimize-2.d: Updated.
* testsuite/gas/i386/optimize-2.s: Add 256-bit vpbroadcastq.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
gas/config/tc-i386.c
gas/testsuite/gas/i386/optimize-2.d
gas/testsuite/gas/i386/optimize-2.s