]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86: have .insn correctly consider AVX10.2's 256-bit embedded rounding
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Jan 2025 09:27:54 +0000 (10:27 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 17 Jan 2025 09:27:54 +0000 (10:27 +0100)
Deriving operand size may no longer assume 512-bit vector size when
embedded rounding is in use. In fact it was apparently wrong to do so
in the first place, as that's not correct for scalar insns. Drop the
rounding type check altogether; we fall back to EVEX.LIG when no
suitable operand was specified anyway, later in the function (and, btw,
similarly for VEX encodings).

gas/config/tc-i386.c
gas/testsuite/gas/i386/evex.s

index ea370071282209ecb783be175ea336c78bc6e026..87926192093b16942ef739f86adf21ed34f8a050 100644 (file)
@@ -13902,8 +13902,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
        {
          if (!i.tm.opcode_modifier.evex)
            {
-             /* Do _not_ consider AVX512VL here.  */
-             if (i.rounding.type != rc_none || combined.bitfield.zmmword)
+             /* Do _not_ consider AVX512VL / AVX10.2 here.  */
+             if (combined.bitfield.zmmword)
                i.tm.opcode_modifier.evex = EVEX512;
              else if (combined.bitfield.ymmword)
                i.tm.opcode_modifier.evex = EVEX256;
index 473ea8a241821167c25e8350529e2dc016b62da2..890eed9d8ebdceebc38b2d095daf6c6f5302e082 100644 (file)
@@ -13,7 +13,7 @@ _start:
        .insn EVEX.LIG.F2.0F.W1 0x7b, %eax,{rd-sae},%xmm5,%xmm6
        .byte 0x62, 0xe1, 0x7e, 0x08, 0x2d, 0xc0
        .byte 0x62, 0xe1, 0x7c, 0x08, 0xc2, 0xc0, 0x00
-       .insn EVEX.512.F3.0F.W0 0xe6, {rd-sae},%zmm5,%ymm6
-       .insn EVEX.256.F3.0F.W0 0xe6, {rd-sae},%ymm5,%xmm6
-       .insn EVEX.512.F3.0F.W0 0x7a, {rd-sae},%zmm5,%ymm6
-       .insn EVEX.256.F3.0F.W0 0x7a, {rd-sae},%ymm5,%xmm6
+       .insn EVEX.F3.0F.W0 0xe6, {rd-sae},%zmm5,%ymm6
+       .insn EVEX.F3.0F.W0 0xe6, {rd-sae},%ymm5,%xmm6
+       .insn EVEX.F3.0F.W0 0x7a, {rd-sae},%zmm5,%ymm6
+       .insn EVEX.F3.0F.W0 0x7a, {rd-sae},%ymm5,%xmm6