Skip to content

Commit 1d4691a

Browse files
authored
[X86][MC] Support Enc/Dec for EGPR for promoted CMPCCXADD instruction (#76125)
R16-R31 was added into GPRs in #70958, This patch supports the encoding/decoding for promoted CMPCCXADD instruction in EVEX space. RFC: https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4
1 parent 59eebb4 commit 1d4691a

File tree

9 files changed

+410
-3
lines changed

9 files changed

+410
-3
lines changed

llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1060,7 +1060,7 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
10601060
Prefix.setBB2(MI, MemOperand + X86::AddrBaseReg);
10611061
Prefix.setXX2(MI, MemOperand + X86::AddrIndexReg);
10621062
CurOp += X86::AddrNumOperands;
1063-
Prefix.set4V(MI, CurOp++);
1063+
Prefix.set4VV2(MI, CurOp++);
10641064
break;
10651065
}
10661066
case X86II::MRM_C0:

llvm/lib/Target/X86/X86InstrAsmAlias.td

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ multiclass CMPCCXADD_Aliases<string Cond, int CC> {
5555
(CMPCCXADDmr32 GR32:$dst, i32mem:$dstsrc2, GR32:$src3, CC), 0>;
5656
def : InstAlias<"cmp"#Cond#"xadd"#"\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
5757
(CMPCCXADDmr64 GR64:$dst, i64mem:$dstsrc2, GR64:$src3, CC), 0>;
58+
59+
def : InstAlias<"cmp"#Cond#"xadd"#"\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
60+
(CMPCCXADDmr32_EVEX GR32:$dst, i32mem:$dstsrc2, GR32:$src3, CC), 0>;
61+
def : InstAlias<"cmp"#Cond#"xadd"#"\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
62+
(CMPCCXADDmr64_EVEX GR64:$dst, i64mem:$dstsrc2, GR64:$src3, CC), 0>;
5863
}
5964

6065
//===----------------------------------------------------------------------===//

llvm/lib/Target/X86/X86InstrMisc.td

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1663,8 +1663,8 @@ let Predicates = [HasPREFETCHI, In64BitMode], SchedRW = [WriteLoad] in {
16631663
// CMPCCXADD Instructions
16641664
//
16651665
let isCodeGenOnly = 1, ForceDisassemble = 1, mayLoad = 1, mayStore = 1,
1666-
Predicates = [HasCMPCCXADD, In64BitMode], Defs = [EFLAGS],
1667-
Constraints = "$dstsrc1 = $dst" in {
1666+
Defs = [EFLAGS], Constraints = "$dstsrc1 = $dst" in {
1667+
let Predicates = [HasCMPCCXADD, NoEGPR, In64BitMode] in {
16681668
def CMPCCXADDmr32 : I<0xe0, MRMDestMem4VOp3CC, (outs GR32:$dst),
16691669
(ins GR32:$dstsrc1, i32mem:$dstsrc2, GR32:$src3, ccode:$cond),
16701670
"cmp${cond}xadd\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
@@ -1680,6 +1680,23 @@ def CMPCCXADDmr64 : I<0xe0, MRMDestMem4VOp3CC, (outs GR64:$dst),
16801680
VEX, VVVV, REX_W, T8PD, Sched<[WriteXCHG]>;
16811681
}
16821682

1683+
let Predicates = [HasCMPCCXADD, HasEGPR, In64BitMode] in {
1684+
def CMPCCXADDmr32_EVEX : I<0xe0, MRMDestMem4VOp3CC, (outs GR32:$dst),
1685+
(ins GR32:$dstsrc1, i32mem:$dstsrc2, GR32:$src3, ccode:$cond),
1686+
"cmp${cond}xadd\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
1687+
[(set GR32:$dst, (X86cmpccxadd addr:$dstsrc2,
1688+
GR32:$dstsrc1, GR32:$src3, timm:$cond))]>,
1689+
EVEX, VVVV, NoCD8, T8PD, Sched<[WriteXCHG]>;
1690+
1691+
def CMPCCXADDmr64_EVEX : I<0xe0, MRMDestMem4VOp3CC, (outs GR64:$dst),
1692+
(ins GR64:$dstsrc1, i64mem:$dstsrc2, GR64:$src3, ccode:$cond),
1693+
"cmp${cond}xadd\t{$src3, $dst, $dstsrc2|$dstsrc2, $dst, $src3}",
1694+
[(set GR64:$dst, (X86cmpccxadd addr:$dstsrc2,
1695+
GR64:$dstsrc1, GR64:$src3, timm:$cond))]>,
1696+
EVEX, VVVV, NoCD8, REX_W, T8PD, Sched<[WriteXCHG]>;
1697+
}
1698+
}
1699+
16831700
//===----------------------------------------------------------------------===//
16841701
// Memory Instructions
16851702
//
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
2+
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
3+
4+
# ATT: cmpbexadd %r18d, %r22d, 291(%r28,%r29,4)
5+
# INTEL: cmpbexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
6+
0x62,0x8a,0x69,0x00,0xe6,0xb4,0xac,0x23,0x01,0x00,0x00
7+
8+
# ATT: cmpbexadd %r19, %r23, 291(%r28,%r29,4)
9+
# INTEL: cmpbexadd qword ptr [r28 + 4*r29 + 291], r23, r19
10+
0x62,0x8a,0xe1,0x00,0xe6,0xbc,0xac,0x23,0x01,0x00,0x00
11+
12+
# ATT: cmpbxadd %r18d, %r22d, 291(%r28,%r29,4)
13+
# INTEL: cmpbxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
14+
0x62,0x8a,0x69,0x00,0xe2,0xb4,0xac,0x23,0x01,0x00,0x00
15+
16+
# ATT: cmpbxadd %r19, %r23, 291(%r28,%r29,4)
17+
# INTEL: cmpbxadd qword ptr [r28 + 4*r29 + 291], r23, r19
18+
0x62,0x8a,0xe1,0x00,0xe2,0xbc,0xac,0x23,0x01,0x00,0x00
19+
20+
# ATT: cmplexadd %r18d, %r22d, 291(%r28,%r29,4)
21+
# INTEL: cmplexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
22+
0x62,0x8a,0x69,0x00,0xee,0xb4,0xac,0x23,0x01,0x00,0x00
23+
24+
# ATT: cmplexadd %r19, %r23, 291(%r28,%r29,4)
25+
# INTEL: cmplexadd qword ptr [r28 + 4*r29 + 291], r23, r19
26+
0x62,0x8a,0xe1,0x00,0xee,0xbc,0xac,0x23,0x01,0x00,0x00
27+
28+
# ATT: cmplxadd %r18d, %r22d, 291(%r28,%r29,4)
29+
# INTEL: cmplxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
30+
0x62,0x8a,0x69,0x00,0xec,0xb4,0xac,0x23,0x01,0x00,0x00
31+
32+
# ATT: cmplxadd %r19, %r23, 291(%r28,%r29,4)
33+
# INTEL: cmplxadd qword ptr [r28 + 4*r29 + 291], r23, r19
34+
0x62,0x8a,0xe1,0x00,0xec,0xbc,0xac,0x23,0x01,0x00,0x00
35+
36+
# ATT: cmpaxadd %r18d, %r22d, 291(%r28,%r29,4)
37+
# INTEL: cmpaxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
38+
0x62,0x8a,0x69,0x00,0xe7,0xb4,0xac,0x23,0x01,0x00,0x00
39+
40+
# ATT: cmpaxadd %r19, %r23, 291(%r28,%r29,4)
41+
# INTEL: cmpaxadd qword ptr [r28 + 4*r29 + 291], r23, r19
42+
0x62,0x8a,0xe1,0x00,0xe7,0xbc,0xac,0x23,0x01,0x00,0x00
43+
44+
# ATT: cmpgxadd %r18d, %r22d, 291(%r28,%r29,4)
45+
# INTEL: cmpgxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
46+
0x62,0x8a,0x69,0x00,0xef,0xb4,0xac,0x23,0x01,0x00,0x00
47+
48+
# ATT: cmpgxadd %r19, %r23, 291(%r28,%r29,4)
49+
# INTEL: cmpgxadd qword ptr [r28 + 4*r29 + 291], r23, r19
50+
0x62,0x8a,0xe1,0x00,0xef,0xbc,0xac,0x23,0x01,0x00,0x00
51+
52+
# ATT: cmpgexadd %r18d, %r22d, 291(%r28,%r29,4)
53+
# INTEL: cmpgexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
54+
0x62,0x8a,0x69,0x00,0xed,0xb4,0xac,0x23,0x01,0x00,0x00
55+
56+
# ATT: cmpgexadd %r19, %r23, 291(%r28,%r29,4)
57+
# INTEL: cmpgexadd qword ptr [r28 + 4*r29 + 291], r23, r19
58+
0x62,0x8a,0xe1,0x00,0xed,0xbc,0xac,0x23,0x01,0x00,0x00
59+
60+
# ATT: cmpnoxadd %r18d, %r22d, 291(%r28,%r29,4)
61+
# INTEL: cmpnoxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
62+
0x62,0x8a,0x69,0x00,0xe1,0xb4,0xac,0x23,0x01,0x00,0x00
63+
64+
# ATT: cmpnoxadd %r19, %r23, 291(%r28,%r29,4)
65+
# INTEL: cmpnoxadd qword ptr [r28 + 4*r29 + 291], r23, r19
66+
0x62,0x8a,0xe1,0x00,0xe1,0xbc,0xac,0x23,0x01,0x00,0x00
67+
68+
# ATT: cmpnpxadd %r18d, %r22d, 291(%r28,%r29,4)
69+
# INTEL: cmpnpxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
70+
0x62,0x8a,0x69,0x00,0xeb,0xb4,0xac,0x23,0x01,0x00,0x00
71+
72+
# ATT: cmpnpxadd %r19, %r23, 291(%r28,%r29,4)
73+
# INTEL: cmpnpxadd qword ptr [r28 + 4*r29 + 291], r23, r19
74+
0x62,0x8a,0xe1,0x00,0xeb,0xbc,0xac,0x23,0x01,0x00,0x00
75+
76+
# ATT: cmpnsxadd %r18d, %r22d, 291(%r28,%r29,4)
77+
# INTEL: cmpnsxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
78+
0x62,0x8a,0x69,0x00,0xe9,0xb4,0xac,0x23,0x01,0x00,0x00
79+
80+
# ATT: cmpnsxadd %r19, %r23, 291(%r28,%r29,4)
81+
# INTEL: cmpnsxadd qword ptr [r28 + 4*r29 + 291], r23, r19
82+
0x62,0x8a,0xe1,0x00,0xe9,0xbc,0xac,0x23,0x01,0x00,0x00
83+
84+
# ATT: cmpnexadd %r18d, %r22d, 291(%r28,%r29,4)
85+
# INTEL: cmpnexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
86+
0x62,0x8a,0x69,0x00,0xe5,0xb4,0xac,0x23,0x01,0x00,0x00
87+
88+
# ATT: cmpnexadd %r19, %r23, 291(%r28,%r29,4)
89+
# INTEL: cmpnexadd qword ptr [r28 + 4*r29 + 291], r23, r19
90+
0x62,0x8a,0xe1,0x00,0xe5,0xbc,0xac,0x23,0x01,0x00,0x00
91+
92+
# ATT: cmpoxadd %r18d, %r22d, 291(%r28,%r29,4)
93+
# INTEL: cmpoxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
94+
0x62,0x8a,0x69,0x00,0xe0,0xb4,0xac,0x23,0x01,0x00,0x00
95+
96+
# ATT: cmpoxadd %r19, %r23, 291(%r28,%r29,4)
97+
# INTEL: cmpoxadd qword ptr [r28 + 4*r29 + 291], r23, r19
98+
0x62,0x8a,0xe1,0x00,0xe0,0xbc,0xac,0x23,0x01,0x00,0x00
99+
100+
# ATT: cmppxadd %r18d, %r22d, 291(%r28,%r29,4)
101+
# INTEL: cmppxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
102+
0x62,0x8a,0x69,0x00,0xea,0xb4,0xac,0x23,0x01,0x00,0x00
103+
104+
# ATT: cmppxadd %r19, %r23, 291(%r28,%r29,4)
105+
# INTEL: cmppxadd qword ptr [r28 + 4*r29 + 291], r23, r19
106+
0x62,0x8a,0xe1,0x00,0xea,0xbc,0xac,0x23,0x01,0x00,0x00
107+
108+
# ATT: cmpsxadd %r18d, %r22d, 291(%r28,%r29,4)
109+
# INTEL: cmpsxadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
110+
0x62,0x8a,0x69,0x00,0xe8,0xb4,0xac,0x23,0x01,0x00,0x00
111+
112+
# ATT: cmpsxadd %r19, %r23, 291(%r28,%r29,4)
113+
# INTEL: cmpsxadd qword ptr [r28 + 4*r29 + 291], r23, r19
114+
0x62,0x8a,0xe1,0x00,0xe8,0xbc,0xac,0x23,0x01,0x00,0x00
115+
116+
# ATT: cmpexadd %r18d, %r22d, 291(%r28,%r29,4)
117+
# INTEL: cmpexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
118+
0x62,0x8a,0x69,0x00,0xe4,0xb4,0xac,0x23,0x01,0x00,0x00
119+
120+
# ATT: cmpexadd %r19, %r23, 291(%r28,%r29,4)
121+
# INTEL: cmpexadd qword ptr [r28 + 4*r29 + 291], r23, r19
122+
0x62,0x8a,0xe1,0x00,0xe4,0xbc,0xac,0x23,0x01,0x00,0x00

llvm/test/MC/Disassembler/X86/apx/evex-format.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@
6262
# INTEL: vpslldq zmm0, zmmword ptr [r16 + r17], 0
6363
0x62,0xf9,0x79,0x48,0x73,0x3c,0x08,0x00
6464

65+
## MRMDestMem4VOp3CC
66+
67+
# ATT: cmpbexadd %r18d, %r22d, 291(%r28,%r29,4)
68+
# INTEL: cmpbexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d
69+
0x62,0x8a,0x69,0x00,0xe6,0xb4,0xac,0x23,0x01,0x00,0x00
70+
6571
## MRMSrcMem4VOp3
6672

6773
# ATT: bzhiq %r19, 291(%r28,%r29,4), %r23

llvm/test/MC/X86/apx/cmpccxadd-att.s

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s
2+
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
3+
4+
# ERROR-COUNT-30: error:
5+
# ERROR-NOT: error:
6+
# CHECK: cmpbexadd %r18d, %r22d, 291(%r28,%r29,4)
7+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe6,0xb4,0xac,0x23,0x01,0x00,0x00]
8+
cmpbexadd %r18d, %r22d, 291(%r28,%r29,4)
9+
10+
# CHECK: cmpbexadd %r19, %r23, 291(%r28,%r29,4)
11+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe6,0xbc,0xac,0x23,0x01,0x00,0x00]
12+
cmpbexadd %r19, %r23, 291(%r28,%r29,4)
13+
14+
# CHECK: cmpbxadd %r18d, %r22d, 291(%r28,%r29,4)
15+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe2,0xb4,0xac,0x23,0x01,0x00,0x00]
16+
cmpbxadd %r18d, %r22d, 291(%r28,%r29,4)
17+
18+
# CHECK: cmpbxadd %r19, %r23, 291(%r28,%r29,4)
19+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe2,0xbc,0xac,0x23,0x01,0x00,0x00]
20+
cmpbxadd %r19, %r23, 291(%r28,%r29,4)
21+
22+
# CHECK: cmplexadd %r18d, %r22d, 291(%r28,%r29,4)
23+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xee,0xb4,0xac,0x23,0x01,0x00,0x00]
24+
cmplexadd %r18d, %r22d, 291(%r28,%r29,4)
25+
26+
# CHECK: cmplexadd %r19, %r23, 291(%r28,%r29,4)
27+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xee,0xbc,0xac,0x23,0x01,0x00,0x00]
28+
cmplexadd %r19, %r23, 291(%r28,%r29,4)
29+
30+
# CHECK: cmplxadd %r18d, %r22d, 291(%r28,%r29,4)
31+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xec,0xb4,0xac,0x23,0x01,0x00,0x00]
32+
cmplxadd %r18d, %r22d, 291(%r28,%r29,4)
33+
34+
# CHECK: cmplxadd %r19, %r23, 291(%r28,%r29,4)
35+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xec,0xbc,0xac,0x23,0x01,0x00,0x00]
36+
cmplxadd %r19, %r23, 291(%r28,%r29,4)
37+
38+
# CHECK: cmpaxadd %r18d, %r22d, 291(%r28,%r29,4)
39+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe7,0xb4,0xac,0x23,0x01,0x00,0x00]
40+
cmpaxadd %r18d, %r22d, 291(%r28,%r29,4)
41+
42+
# CHECK: cmpaxadd %r19, %r23, 291(%r28,%r29,4)
43+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe7,0xbc,0xac,0x23,0x01,0x00,0x00]
44+
cmpaxadd %r19, %r23, 291(%r28,%r29,4)
45+
46+
# CHECK: cmpgxadd %r18d, %r22d, 291(%r28,%r29,4)
47+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xef,0xb4,0xac,0x23,0x01,0x00,0x00]
48+
cmpgxadd %r18d, %r22d, 291(%r28,%r29,4)
49+
50+
# CHECK: cmpgxadd %r19, %r23, 291(%r28,%r29,4)
51+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xef,0xbc,0xac,0x23,0x01,0x00,0x00]
52+
cmpgxadd %r19, %r23, 291(%r28,%r29,4)
53+
54+
# CHECK: cmpgexadd %r18d, %r22d, 291(%r28,%r29,4)
55+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xed,0xb4,0xac,0x23,0x01,0x00,0x00]
56+
cmpgexadd %r18d, %r22d, 291(%r28,%r29,4)
57+
58+
# CHECK: cmpgexadd %r19, %r23, 291(%r28,%r29,4)
59+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xed,0xbc,0xac,0x23,0x01,0x00,0x00]
60+
cmpgexadd %r19, %r23, 291(%r28,%r29,4)
61+
62+
# CHECK: cmpnoxadd %r18d, %r22d, 291(%r28,%r29,4)
63+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe1,0xb4,0xac,0x23,0x01,0x00,0x00]
64+
cmpnoxadd %r18d, %r22d, 291(%r28,%r29,4)
65+
66+
# CHECK: cmpnoxadd %r19, %r23, 291(%r28,%r29,4)
67+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe1,0xbc,0xac,0x23,0x01,0x00,0x00]
68+
cmpnoxadd %r19, %r23, 291(%r28,%r29,4)
69+
70+
# CHECK: cmpnpxadd %r18d, %r22d, 291(%r28,%r29,4)
71+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xeb,0xb4,0xac,0x23,0x01,0x00,0x00]
72+
cmpnpxadd %r18d, %r22d, 291(%r28,%r29,4)
73+
74+
# CHECK: cmpnpxadd %r19, %r23, 291(%r28,%r29,4)
75+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xeb,0xbc,0xac,0x23,0x01,0x00,0x00]
76+
cmpnpxadd %r19, %r23, 291(%r28,%r29,4)
77+
78+
# CHECK: cmpnsxadd %r18d, %r22d, 291(%r28,%r29,4)
79+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe9,0xb4,0xac,0x23,0x01,0x00,0x00]
80+
cmpnsxadd %r18d, %r22d, 291(%r28,%r29,4)
81+
82+
# CHECK: cmpnsxadd %r19, %r23, 291(%r28,%r29,4)
83+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe9,0xbc,0xac,0x23,0x01,0x00,0x00]
84+
cmpnsxadd %r19, %r23, 291(%r28,%r29,4)
85+
86+
# CHECK: cmpnexadd %r18d, %r22d, 291(%r28,%r29,4)
87+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe5,0xb4,0xac,0x23,0x01,0x00,0x00]
88+
cmpnexadd %r18d, %r22d, 291(%r28,%r29,4)
89+
90+
# CHECK: cmpnexadd %r19, %r23, 291(%r28,%r29,4)
91+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe5,0xbc,0xac,0x23,0x01,0x00,0x00]
92+
cmpnexadd %r19, %r23, 291(%r28,%r29,4)
93+
94+
# CHECK: cmpoxadd %r18d, %r22d, 291(%r28,%r29,4)
95+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe0,0xb4,0xac,0x23,0x01,0x00,0x00]
96+
cmpoxadd %r18d, %r22d, 291(%r28,%r29,4)
97+
98+
# CHECK: cmpoxadd %r19, %r23, 291(%r28,%r29,4)
99+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe0,0xbc,0xac,0x23,0x01,0x00,0x00]
100+
cmpoxadd %r19, %r23, 291(%r28,%r29,4)
101+
102+
# CHECK: cmppxadd %r18d, %r22d, 291(%r28,%r29,4)
103+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xea,0xb4,0xac,0x23,0x01,0x00,0x00]
104+
cmppxadd %r18d, %r22d, 291(%r28,%r29,4)
105+
106+
# CHECK: cmppxadd %r19, %r23, 291(%r28,%r29,4)
107+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xea,0xbc,0xac,0x23,0x01,0x00,0x00]
108+
cmppxadd %r19, %r23, 291(%r28,%r29,4)
109+
110+
# CHECK: cmpsxadd %r18d, %r22d, 291(%r28,%r29,4)
111+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe8,0xb4,0xac,0x23,0x01,0x00,0x00]
112+
cmpsxadd %r18d, %r22d, 291(%r28,%r29,4)
113+
114+
# CHECK: cmpsxadd %r19, %r23, 291(%r28,%r29,4)
115+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe8,0xbc,0xac,0x23,0x01,0x00,0x00]
116+
cmpsxadd %r19, %r23, 291(%r28,%r29,4)
117+
118+
# CHECK: cmpexadd %r18d, %r22d, 291(%r28,%r29,4)
119+
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe4,0xb4,0xac,0x23,0x01,0x00,0x00]
120+
cmpexadd %r18d, %r22d, 291(%r28,%r29,4)
121+
122+
# CHECK: cmpexadd %r19, %r23, 291(%r28,%r29,4)
123+
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xe4,0xbc,0xac,0x23,0x01,0x00,0x00]
124+
cmpexadd %r19, %r23, 291(%r28,%r29,4)

0 commit comments

Comments
 (0)