xref: /llvm-project/llvm/test/MC/X86/apx/cmov-intel.s (revision 7b766a6f505577bbb7d2cd2c553b6207306c0df9)
1# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s
2
3# CHECK: cmovb	r9w, ax, dx
4# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x42,0xc2]
5         cmovb	r9w, ax, dx
6# CHECK: cmovb	r10d, edx, ecx
7# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x42,0xd1]
8         cmovb	r10d, edx, ecx
9# CHECK: cmovb	r11, r15, r9
10# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x42,0xf9]
11         cmovb	r11, r15, r9
12# CHECK: cmovb	ax, dx, word ptr [r8 + 4*rax + 123]
13# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x42,0x54,0x80,0x7b]
14         cmovb	ax, dx, word ptr [r8 + 4*rax + 123]
15# CHECK: cmovb	edx, ecx, dword ptr [r8 + 4*rax + 123]
16# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x42,0x4c,0x80,0x7b]
17         cmovb	edx, ecx, dword ptr [r8 + 4*rax + 123]
18# CHECK: cmovb	r15, r9, qword ptr [r8 + 4*rax + 123]
19# CHECK: encoding: [0x62,0x54,0x84,0x18,0x42,0x4c,0x80,0x7b]
20         cmovb	r15, r9, qword ptr [r8 + 4*rax + 123]
21# CHECK: cmovbe	r9w, ax, dx
22# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x46,0xc2]
23         cmovbe	r9w, ax, dx
24# CHECK: cmovbe	r10d, edx, ecx
25# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x46,0xd1]
26         cmovbe	r10d, edx, ecx
27# CHECK: cmovbe	r11, r15, r9
28# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x46,0xf9]
29         cmovbe	r11, r15, r9
30# CHECK: cmovbe	ax, dx, word ptr [r8 + 4*rax + 123]
31# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x46,0x54,0x80,0x7b]
32         cmovbe	ax, dx, word ptr [r8 + 4*rax + 123]
33# CHECK: cmovbe	edx, ecx, dword ptr [r8 + 4*rax + 123]
34# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x46,0x4c,0x80,0x7b]
35         cmovbe	edx, ecx, dword ptr [r8 + 4*rax + 123]
36# CHECK: cmovbe	r15, r9, qword ptr [r8 + 4*rax + 123]
37# CHECK: encoding: [0x62,0x54,0x84,0x18,0x46,0x4c,0x80,0x7b]
38         cmovbe	r15, r9, qword ptr [r8 + 4*rax + 123]
39# CHECK: cmovl	r9w, ax, dx
40# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4c,0xc2]
41         cmovl	r9w, ax, dx
42# CHECK: cmovl	r10d, edx, ecx
43# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4c,0xd1]
44         cmovl	r10d, edx, ecx
45# CHECK: cmovl	r11, r15, r9
46# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4c,0xf9]
47         cmovl	r11, r15, r9
48# CHECK: cmovl	ax, dx, word ptr [r8 + 4*rax + 123]
49# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4c,0x54,0x80,0x7b]
50         cmovl	ax, dx, word ptr [r8 + 4*rax + 123]
51# CHECK: cmovl	edx, ecx, dword ptr [r8 + 4*rax + 123]
52# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4c,0x4c,0x80,0x7b]
53         cmovl	edx, ecx, dword ptr [r8 + 4*rax + 123]
54# CHECK: cmovl	r15, r9, qword ptr [r8 + 4*rax + 123]
55# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4c,0x4c,0x80,0x7b]
56         cmovl	r15, r9, qword ptr [r8 + 4*rax + 123]
57# CHECK: cmovle	r9w, ax, dx
58# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4e,0xc2]
59         cmovle	r9w, ax, dx
60# CHECK: cmovle	r10d, edx, ecx
61# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4e,0xd1]
62         cmovle	r10d, edx, ecx
63# CHECK: cmovle	r11, r15, r9
64# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4e,0xf9]
65         cmovle	r11, r15, r9
66# CHECK: cmovle	ax, dx, word ptr [r8 + 4*rax + 123]
67# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4e,0x54,0x80,0x7b]
68         cmovle	ax, dx, word ptr [r8 + 4*rax + 123]
69# CHECK: cmovle	edx, ecx, dword ptr [r8 + 4*rax + 123]
70# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4e,0x4c,0x80,0x7b]
71         cmovle	edx, ecx, dword ptr [r8 + 4*rax + 123]
72# CHECK: cmovle	r15, r9, qword ptr [r8 + 4*rax + 123]
73# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4e,0x4c,0x80,0x7b]
74         cmovle	r15, r9, qword ptr [r8 + 4*rax + 123]
75# CHECK: cmovae	r9w, ax, dx
76# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x43,0xc2]
77         cmovae	r9w, ax, dx
78# CHECK: cmovae	r10d, edx, ecx
79# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x43,0xd1]
80         cmovae	r10d, edx, ecx
81# CHECK: cmovae	r11, r15, r9
82# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x43,0xf9]
83         cmovae	r11, r15, r9
84# CHECK: cmovae	ax, dx, word ptr [r8 + 4*rax + 123]
85# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x43,0x54,0x80,0x7b]
86         cmovae	ax, dx, word ptr [r8 + 4*rax + 123]
87# CHECK: cmovae	edx, ecx, dword ptr [r8 + 4*rax + 123]
88# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x43,0x4c,0x80,0x7b]
89         cmovae	edx, ecx, dword ptr [r8 + 4*rax + 123]
90# CHECK: cmovae	r15, r9, qword ptr [r8 + 4*rax + 123]
91# CHECK: encoding: [0x62,0x54,0x84,0x18,0x43,0x4c,0x80,0x7b]
92         cmovae	r15, r9, qword ptr [r8 + 4*rax + 123]
93# CHECK: cmova	r9w, ax, dx
94# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x47,0xc2]
95         cmova	r9w, ax, dx
96# CHECK: cmova	r10d, edx, ecx
97# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x47,0xd1]
98         cmova	r10d, edx, ecx
99# CHECK: cmova	r11, r15, r9
100# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x47,0xf9]
101         cmova	r11, r15, r9
102# CHECK: cmova	ax, dx, word ptr [r8 + 4*rax + 123]
103# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x47,0x54,0x80,0x7b]
104         cmova	ax, dx, word ptr [r8 + 4*rax + 123]
105# CHECK: cmova	edx, ecx, dword ptr [r8 + 4*rax + 123]
106# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x47,0x4c,0x80,0x7b]
107         cmova	edx, ecx, dword ptr [r8 + 4*rax + 123]
108# CHECK: cmova	r15, r9, qword ptr [r8 + 4*rax + 123]
109# CHECK: encoding: [0x62,0x54,0x84,0x18,0x47,0x4c,0x80,0x7b]
110         cmova	r15, r9, qword ptr [r8 + 4*rax + 123]
111# CHECK: cmovge	r9w, ax, dx
112# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4d,0xc2]
113         cmovge	r9w, ax, dx
114# CHECK: cmovge	r10d, edx, ecx
115# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4d,0xd1]
116         cmovge	r10d, edx, ecx
117# CHECK: cmovge	r11, r15, r9
118# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4d,0xf9]
119         cmovge	r11, r15, r9
120# CHECK: cmovge	ax, dx, word ptr [r8 + 4*rax + 123]
121# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4d,0x54,0x80,0x7b]
122         cmovge	ax, dx, word ptr [r8 + 4*rax + 123]
123# CHECK: cmovge	edx, ecx, dword ptr [r8 + 4*rax + 123]
124# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4d,0x4c,0x80,0x7b]
125         cmovge	edx, ecx, dword ptr [r8 + 4*rax + 123]
126# CHECK: cmovge	r15, r9, qword ptr [r8 + 4*rax + 123]
127# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4d,0x4c,0x80,0x7b]
128         cmovge	r15, r9, qword ptr [r8 + 4*rax + 123]
129# CHECK: cmovg	r9w, ax, dx
130# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4f,0xc2]
131         cmovg	r9w, ax, dx
132# CHECK: cmovg	r10d, edx, ecx
133# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4f,0xd1]
134         cmovg	r10d, edx, ecx
135# CHECK: cmovg	r11, r15, r9
136# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4f,0xf9]
137         cmovg	r11, r15, r9
138# CHECK: cmovg	ax, dx, word ptr [r8 + 4*rax + 123]
139# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4f,0x54,0x80,0x7b]
140         cmovg	ax, dx, word ptr [r8 + 4*rax + 123]
141# CHECK: cmovg	edx, ecx, dword ptr [r8 + 4*rax + 123]
142# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4f,0x4c,0x80,0x7b]
143         cmovg	edx, ecx, dword ptr [r8 + 4*rax + 123]
144# CHECK: cmovg	r15, r9, qword ptr [r8 + 4*rax + 123]
145# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4f,0x4c,0x80,0x7b]
146         cmovg	r15, r9, qword ptr [r8 + 4*rax + 123]
147# CHECK: cmovno	r9w, ax, dx
148# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x41,0xc2]
149         cmovno	r9w, ax, dx
150# CHECK: cmovno	r10d, edx, ecx
151# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x41,0xd1]
152         cmovno	r10d, edx, ecx
153# CHECK: cmovno	r11, r15, r9
154# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x41,0xf9]
155         cmovno	r11, r15, r9
156# CHECK: cmovno	ax, dx, word ptr [r8 + 4*rax + 123]
157# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x41,0x54,0x80,0x7b]
158         cmovno	ax, dx, word ptr [r8 + 4*rax + 123]
159# CHECK: cmovno	edx, ecx, dword ptr [r8 + 4*rax + 123]
160# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x41,0x4c,0x80,0x7b]
161         cmovno	edx, ecx, dword ptr [r8 + 4*rax + 123]
162# CHECK: cmovno	r15, r9, qword ptr [r8 + 4*rax + 123]
163# CHECK: encoding: [0x62,0x54,0x84,0x18,0x41,0x4c,0x80,0x7b]
164         cmovno	r15, r9, qword ptr [r8 + 4*rax + 123]
165# CHECK: cmovnp	r9w, ax, dx
166# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4b,0xc2]
167         cmovnp	r9w, ax, dx
168# CHECK: cmovnp	r10d, edx, ecx
169# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4b,0xd1]
170         cmovnp	r10d, edx, ecx
171# CHECK: cmovnp	r11, r15, r9
172# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4b,0xf9]
173         cmovnp	r11, r15, r9
174# CHECK: cmovnp	ax, dx, word ptr [r8 + 4*rax + 123]
175# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4b,0x54,0x80,0x7b]
176         cmovnp	ax, dx, word ptr [r8 + 4*rax + 123]
177# CHECK: cmovnp	edx, ecx, dword ptr [r8 + 4*rax + 123]
178# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4b,0x4c,0x80,0x7b]
179         cmovnp	edx, ecx, dword ptr [r8 + 4*rax + 123]
180# CHECK: cmovnp	r15, r9, qword ptr [r8 + 4*rax + 123]
181# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4b,0x4c,0x80,0x7b]
182         cmovnp	r15, r9, qword ptr [r8 + 4*rax + 123]
183# CHECK: cmovns	r9w, ax, dx
184# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x49,0xc2]
185         cmovns	r9w, ax, dx
186# CHECK: cmovns	r10d, edx, ecx
187# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x49,0xd1]
188         cmovns	r10d, edx, ecx
189# CHECK: cmovns	r11, r15, r9
190# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x49,0xf9]
191         cmovns	r11, r15, r9
192# CHECK: cmovns	ax, dx, word ptr [r8 + 4*rax + 123]
193# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x49,0x54,0x80,0x7b]
194         cmovns	ax, dx, word ptr [r8 + 4*rax + 123]
195# CHECK: cmovns	edx, ecx, dword ptr [r8 + 4*rax + 123]
196# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x49,0x4c,0x80,0x7b]
197         cmovns	edx, ecx, dword ptr [r8 + 4*rax + 123]
198# CHECK: cmovns	r15, r9, qword ptr [r8 + 4*rax + 123]
199# CHECK: encoding: [0x62,0x54,0x84,0x18,0x49,0x4c,0x80,0x7b]
200         cmovns	r15, r9, qword ptr [r8 + 4*rax + 123]
201# CHECK: cmovne	r9w, ax, dx
202# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x45,0xc2]
203         cmovne	r9w, ax, dx
204# CHECK: cmovne	r10d, edx, ecx
205# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x45,0xd1]
206         cmovne	r10d, edx, ecx
207# CHECK: cmovne	r11, r15, r9
208# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x45,0xf9]
209         cmovne	r11, r15, r9
210# CHECK: cmovne	ax, dx, word ptr [r8 + 4*rax + 123]
211# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x45,0x54,0x80,0x7b]
212         cmovne	ax, dx, word ptr [r8 + 4*rax + 123]
213# CHECK: cmovne	edx, ecx, dword ptr [r8 + 4*rax + 123]
214# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x45,0x4c,0x80,0x7b]
215         cmovne	edx, ecx, dword ptr [r8 + 4*rax + 123]
216# CHECK: cmovne	r15, r9, qword ptr [r8 + 4*rax + 123]
217# CHECK: encoding: [0x62,0x54,0x84,0x18,0x45,0x4c,0x80,0x7b]
218         cmovne	r15, r9, qword ptr [r8 + 4*rax + 123]
219# CHECK: cmovo	r9w, ax, dx
220# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x40,0xc2]
221         cmovo	r9w, ax, dx
222# CHECK: cmovo	r10d, edx, ecx
223# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x40,0xd1]
224         cmovo	r10d, edx, ecx
225# CHECK: cmovo	r11, r15, r9
226# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x40,0xf9]
227         cmovo	r11, r15, r9
228# CHECK: cmovo	ax, dx, word ptr [r8 + 4*rax + 123]
229# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x40,0x54,0x80,0x7b]
230         cmovo	ax, dx, word ptr [r8 + 4*rax + 123]
231# CHECK: cmovo	edx, ecx, dword ptr [r8 + 4*rax + 123]
232# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x40,0x4c,0x80,0x7b]
233         cmovo	edx, ecx, dword ptr [r8 + 4*rax + 123]
234# CHECK: cmovo	r15, r9, qword ptr [r8 + 4*rax + 123]
235# CHECK: encoding: [0x62,0x54,0x84,0x18,0x40,0x4c,0x80,0x7b]
236         cmovo	r15, r9, qword ptr [r8 + 4*rax + 123]
237# CHECK: cmovp	r9w, ax, dx
238# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4a,0xc2]
239         cmovp	r9w, ax, dx
240# CHECK: cmovp	r10d, edx, ecx
241# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4a,0xd1]
242         cmovp	r10d, edx, ecx
243# CHECK: cmovp	r11, r15, r9
244# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4a,0xf9]
245         cmovp	r11, r15, r9
246# CHECK: cmovp	ax, dx, word ptr [r8 + 4*rax + 123]
247# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4a,0x54,0x80,0x7b]
248         cmovp	ax, dx, word ptr [r8 + 4*rax + 123]
249# CHECK: cmovp	edx, ecx, dword ptr [r8 + 4*rax + 123]
250# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4a,0x4c,0x80,0x7b]
251         cmovp	edx, ecx, dword ptr [r8 + 4*rax + 123]
252# CHECK: cmovp	r15, r9, qword ptr [r8 + 4*rax + 123]
253# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4a,0x4c,0x80,0x7b]
254         cmovp	r15, r9, qword ptr [r8 + 4*rax + 123]
255# CHECK: cmovs	r9w, ax, dx
256# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x48,0xc2]
257         cmovs	r9w, ax, dx
258# CHECK: cmovs	r10d, edx, ecx
259# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x48,0xd1]
260         cmovs	r10d, edx, ecx
261# CHECK: cmovs	r11, r15, r9
262# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x48,0xf9]
263         cmovs	r11, r15, r9
264# CHECK: cmovs	ax, dx, word ptr [r8 + 4*rax + 123]
265# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x48,0x54,0x80,0x7b]
266         cmovs	ax, dx, word ptr [r8 + 4*rax + 123]
267# CHECK: cmovs	edx, ecx, dword ptr [r8 + 4*rax + 123]
268# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x48,0x4c,0x80,0x7b]
269         cmovs	edx, ecx, dword ptr [r8 + 4*rax + 123]
270# CHECK: cmovs	r15, r9, qword ptr [r8 + 4*rax + 123]
271# CHECK: encoding: [0x62,0x54,0x84,0x18,0x48,0x4c,0x80,0x7b]
272         cmovs	r15, r9, qword ptr [r8 + 4*rax + 123]
273# CHECK: cmove	r9w, ax, dx
274# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x44,0xc2]
275         cmove	r9w, ax, dx
276# CHECK: cmove	r10d, edx, ecx
277# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x44,0xd1]
278         cmove	r10d, edx, ecx
279# CHECK: cmove	r11, r15, r9
280# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x44,0xf9]
281         cmove	r11, r15, r9
282# CHECK: cmove	ax, dx, word ptr [r8 + 4*rax + 123]
283# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x44,0x54,0x80,0x7b]
284         cmove	ax, dx, word ptr [r8 + 4*rax + 123]
285# CHECK: cmove	edx, ecx, dword ptr [r8 + 4*rax + 123]
286# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x44,0x4c,0x80,0x7b]
287         cmove	edx, ecx, dword ptr [r8 + 4*rax + 123]
288# CHECK: cmove	r15, r9, qword ptr [r8 + 4*rax + 123]
289# CHECK: encoding: [0x62,0x54,0x84,0x18,0x44,0x4c,0x80,0x7b]
290         cmove	r15, r9, qword ptr [r8 + 4*rax + 123]
291