xref: /llvm-project/llvm/test/MC/X86/apx/cmov-att.s (revision 7b766a6f505577bbb7d2cd2c553b6207306c0df9)
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-96: error:
5# ERROR-NOT: error:
6# CHECK: cmovbw	%dx, %ax, %r9w
7# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x42,0xc2]
8         cmovbw	%dx, %ax, %r9w
9# CHECK: cmovbl	%ecx, %edx, %r10d
10# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x42,0xd1]
11         cmovbl	%ecx, %edx, %r10d
12# CHECK: cmovbq	%r9, %r15, %r11
13# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x42,0xf9]
14         cmovbq	%r9, %r15, %r11
15# CHECK: cmovbw	123(%r8,%rax,4), %dx, %ax
16# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x42,0x54,0x80,0x7b]
17         cmovbw	123(%r8,%rax,4), %dx, %ax
18# CHECK: cmovbl	123(%r8,%rax,4), %ecx, %edx
19# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x42,0x4c,0x80,0x7b]
20         cmovbl	123(%r8,%rax,4), %ecx, %edx
21# CHECK: cmovbq	123(%r8,%rax,4), %r9, %r15
22# CHECK: encoding: [0x62,0x54,0x84,0x18,0x42,0x4c,0x80,0x7b]
23         cmovbq	123(%r8,%rax,4), %r9, %r15
24# CHECK: cmovbew	%dx, %ax, %r9w
25# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x46,0xc2]
26         cmovbew	%dx, %ax, %r9w
27# CHECK: cmovbel	%ecx, %edx, %r10d
28# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x46,0xd1]
29         cmovbel	%ecx, %edx, %r10d
30# CHECK: cmovbeq	%r9, %r15, %r11
31# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x46,0xf9]
32         cmovbeq	%r9, %r15, %r11
33# CHECK: cmovbew	123(%r8,%rax,4), %dx, %ax
34# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x46,0x54,0x80,0x7b]
35         cmovbew	123(%r8,%rax,4), %dx, %ax
36# CHECK: cmovbel	123(%r8,%rax,4), %ecx, %edx
37# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x46,0x4c,0x80,0x7b]
38         cmovbel	123(%r8,%rax,4), %ecx, %edx
39# CHECK: cmovbeq	123(%r8,%rax,4), %r9, %r15
40# CHECK: encoding: [0x62,0x54,0x84,0x18,0x46,0x4c,0x80,0x7b]
41         cmovbeq	123(%r8,%rax,4), %r9, %r15
42# CHECK: cmovlw	%dx, %ax, %r9w
43# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4c,0xc2]
44         cmovlw	%dx, %ax, %r9w
45# CHECK: cmovll	%ecx, %edx, %r10d
46# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4c,0xd1]
47         cmovll	%ecx, %edx, %r10d
48# CHECK: cmovlq	%r9, %r15, %r11
49# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4c,0xf9]
50         cmovlq	%r9, %r15, %r11
51# CHECK: cmovlw	123(%r8,%rax,4), %dx, %ax
52# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4c,0x54,0x80,0x7b]
53         cmovlw	123(%r8,%rax,4), %dx, %ax
54# CHECK: cmovll	123(%r8,%rax,4), %ecx, %edx
55# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4c,0x4c,0x80,0x7b]
56         cmovll	123(%r8,%rax,4), %ecx, %edx
57# CHECK: cmovlq	123(%r8,%rax,4), %r9, %r15
58# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4c,0x4c,0x80,0x7b]
59         cmovlq	123(%r8,%rax,4), %r9, %r15
60# CHECK: cmovlew	%dx, %ax, %r9w
61# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4e,0xc2]
62         cmovlew	%dx, %ax, %r9w
63# CHECK: cmovlel	%ecx, %edx, %r10d
64# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4e,0xd1]
65         cmovlel	%ecx, %edx, %r10d
66# CHECK: cmovleq	%r9, %r15, %r11
67# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4e,0xf9]
68         cmovleq	%r9, %r15, %r11
69# CHECK: cmovlew	123(%r8,%rax,4), %dx, %ax
70# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4e,0x54,0x80,0x7b]
71         cmovlew	123(%r8,%rax,4), %dx, %ax
72# CHECK: cmovlel	123(%r8,%rax,4), %ecx, %edx
73# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4e,0x4c,0x80,0x7b]
74         cmovlel	123(%r8,%rax,4), %ecx, %edx
75# CHECK: cmovleq	123(%r8,%rax,4), %r9, %r15
76# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4e,0x4c,0x80,0x7b]
77         cmovleq	123(%r8,%rax,4), %r9, %r15
78# CHECK: cmovaew	%dx, %ax, %r9w
79# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x43,0xc2]
80         cmovaew	%dx, %ax, %r9w
81# CHECK: cmovael	%ecx, %edx, %r10d
82# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x43,0xd1]
83         cmovael	%ecx, %edx, %r10d
84# CHECK: cmovaeq	%r9, %r15, %r11
85# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x43,0xf9]
86         cmovaeq	%r9, %r15, %r11
87# CHECK: cmovaew	123(%r8,%rax,4), %dx, %ax
88# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x43,0x54,0x80,0x7b]
89         cmovaew	123(%r8,%rax,4), %dx, %ax
90# CHECK: cmovael	123(%r8,%rax,4), %ecx, %edx
91# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x43,0x4c,0x80,0x7b]
92         cmovael	123(%r8,%rax,4), %ecx, %edx
93# CHECK: cmovaeq	123(%r8,%rax,4), %r9, %r15
94# CHECK: encoding: [0x62,0x54,0x84,0x18,0x43,0x4c,0x80,0x7b]
95         cmovaeq	123(%r8,%rax,4), %r9, %r15
96# CHECK: cmovaw	%dx, %ax, %r9w
97# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x47,0xc2]
98         cmovaw	%dx, %ax, %r9w
99# CHECK: cmoval	%ecx, %edx, %r10d
100# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x47,0xd1]
101         cmoval	%ecx, %edx, %r10d
102# CHECK: cmovaq	%r9, %r15, %r11
103# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x47,0xf9]
104         cmovaq	%r9, %r15, %r11
105# CHECK: cmovaw	123(%r8,%rax,4), %dx, %ax
106# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x47,0x54,0x80,0x7b]
107         cmovaw	123(%r8,%rax,4), %dx, %ax
108# CHECK: cmoval	123(%r8,%rax,4), %ecx, %edx
109# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x47,0x4c,0x80,0x7b]
110         cmoval	123(%r8,%rax,4), %ecx, %edx
111# CHECK: cmovaq	123(%r8,%rax,4), %r9, %r15
112# CHECK: encoding: [0x62,0x54,0x84,0x18,0x47,0x4c,0x80,0x7b]
113         cmovaq	123(%r8,%rax,4), %r9, %r15
114# CHECK: cmovgew	%dx, %ax, %r9w
115# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4d,0xc2]
116         cmovgew	%dx, %ax, %r9w
117# CHECK: cmovgel	%ecx, %edx, %r10d
118# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4d,0xd1]
119         cmovgel	%ecx, %edx, %r10d
120# CHECK: cmovgeq	%r9, %r15, %r11
121# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4d,0xf9]
122         cmovgeq	%r9, %r15, %r11
123# CHECK: cmovgew	123(%r8,%rax,4), %dx, %ax
124# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4d,0x54,0x80,0x7b]
125         cmovgew	123(%r8,%rax,4), %dx, %ax
126# CHECK: cmovgel	123(%r8,%rax,4), %ecx, %edx
127# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4d,0x4c,0x80,0x7b]
128         cmovgel	123(%r8,%rax,4), %ecx, %edx
129# CHECK: cmovgeq	123(%r8,%rax,4), %r9, %r15
130# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4d,0x4c,0x80,0x7b]
131         cmovgeq	123(%r8,%rax,4), %r9, %r15
132# CHECK: cmovgw	%dx, %ax, %r9w
133# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4f,0xc2]
134         cmovgw	%dx, %ax, %r9w
135# CHECK: cmovgl	%ecx, %edx, %r10d
136# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4f,0xd1]
137         cmovgl	%ecx, %edx, %r10d
138# CHECK: cmovgq	%r9, %r15, %r11
139# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4f,0xf9]
140         cmovgq	%r9, %r15, %r11
141# CHECK: cmovgw	123(%r8,%rax,4), %dx, %ax
142# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4f,0x54,0x80,0x7b]
143         cmovgw	123(%r8,%rax,4), %dx, %ax
144# CHECK: cmovgl	123(%r8,%rax,4), %ecx, %edx
145# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4f,0x4c,0x80,0x7b]
146         cmovgl	123(%r8,%rax,4), %ecx, %edx
147# CHECK: cmovgq	123(%r8,%rax,4), %r9, %r15
148# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4f,0x4c,0x80,0x7b]
149         cmovgq	123(%r8,%rax,4), %r9, %r15
150# CHECK: cmovnow	%dx, %ax, %r9w
151# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x41,0xc2]
152         cmovnow	%dx, %ax, %r9w
153# CHECK: cmovnol	%ecx, %edx, %r10d
154# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x41,0xd1]
155         cmovnol	%ecx, %edx, %r10d
156# CHECK: cmovnoq	%r9, %r15, %r11
157# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x41,0xf9]
158         cmovnoq	%r9, %r15, %r11
159# CHECK: cmovnow	123(%r8,%rax,4), %dx, %ax
160# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x41,0x54,0x80,0x7b]
161         cmovnow	123(%r8,%rax,4), %dx, %ax
162# CHECK: cmovnol	123(%r8,%rax,4), %ecx, %edx
163# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x41,0x4c,0x80,0x7b]
164         cmovnol	123(%r8,%rax,4), %ecx, %edx
165# CHECK: cmovnoq	123(%r8,%rax,4), %r9, %r15
166# CHECK: encoding: [0x62,0x54,0x84,0x18,0x41,0x4c,0x80,0x7b]
167         cmovnoq	123(%r8,%rax,4), %r9, %r15
168# CHECK: cmovnpw	%dx, %ax, %r9w
169# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4b,0xc2]
170         cmovnpw	%dx, %ax, %r9w
171# CHECK: cmovnpl	%ecx, %edx, %r10d
172# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4b,0xd1]
173         cmovnpl	%ecx, %edx, %r10d
174# CHECK: cmovnpq	%r9, %r15, %r11
175# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4b,0xf9]
176         cmovnpq	%r9, %r15, %r11
177# CHECK: cmovnpw	123(%r8,%rax,4), %dx, %ax
178# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4b,0x54,0x80,0x7b]
179         cmovnpw	123(%r8,%rax,4), %dx, %ax
180# CHECK: cmovnpl	123(%r8,%rax,4), %ecx, %edx
181# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4b,0x4c,0x80,0x7b]
182         cmovnpl	123(%r8,%rax,4), %ecx, %edx
183# CHECK: cmovnpq	123(%r8,%rax,4), %r9, %r15
184# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4b,0x4c,0x80,0x7b]
185         cmovnpq	123(%r8,%rax,4), %r9, %r15
186# CHECK: cmovnsw	%dx, %ax, %r9w
187# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x49,0xc2]
188         cmovnsw	%dx, %ax, %r9w
189# CHECK: cmovnsl	%ecx, %edx, %r10d
190# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x49,0xd1]
191         cmovnsl	%ecx, %edx, %r10d
192# CHECK: cmovnsq	%r9, %r15, %r11
193# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x49,0xf9]
194         cmovnsq	%r9, %r15, %r11
195# CHECK: cmovnsw	123(%r8,%rax,4), %dx, %ax
196# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x49,0x54,0x80,0x7b]
197         cmovnsw	123(%r8,%rax,4), %dx, %ax
198# CHECK: cmovnsl	123(%r8,%rax,4), %ecx, %edx
199# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x49,0x4c,0x80,0x7b]
200         cmovnsl	123(%r8,%rax,4), %ecx, %edx
201# CHECK: cmovnsq	123(%r8,%rax,4), %r9, %r15
202# CHECK: encoding: [0x62,0x54,0x84,0x18,0x49,0x4c,0x80,0x7b]
203         cmovnsq	123(%r8,%rax,4), %r9, %r15
204# CHECK: cmovnew	%dx, %ax, %r9w
205# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x45,0xc2]
206         cmovnew	%dx, %ax, %r9w
207# CHECK: cmovnel	%ecx, %edx, %r10d
208# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x45,0xd1]
209         cmovnel	%ecx, %edx, %r10d
210# CHECK: cmovneq	%r9, %r15, %r11
211# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x45,0xf9]
212         cmovneq	%r9, %r15, %r11
213# CHECK: cmovnew	123(%r8,%rax,4), %dx, %ax
214# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x45,0x54,0x80,0x7b]
215         cmovnew	123(%r8,%rax,4), %dx, %ax
216# CHECK: cmovnel	123(%r8,%rax,4), %ecx, %edx
217# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x45,0x4c,0x80,0x7b]
218         cmovnel	123(%r8,%rax,4), %ecx, %edx
219# CHECK: cmovneq	123(%r8,%rax,4), %r9, %r15
220# CHECK: encoding: [0x62,0x54,0x84,0x18,0x45,0x4c,0x80,0x7b]
221         cmovneq	123(%r8,%rax,4), %r9, %r15
222# CHECK: cmovow	%dx, %ax, %r9w
223# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x40,0xc2]
224         cmovow	%dx, %ax, %r9w
225# CHECK: cmovol	%ecx, %edx, %r10d
226# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x40,0xd1]
227         cmovol	%ecx, %edx, %r10d
228# CHECK: cmovoq	%r9, %r15, %r11
229# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x40,0xf9]
230         cmovoq	%r9, %r15, %r11
231# CHECK: cmovow	123(%r8,%rax,4), %dx, %ax
232# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x40,0x54,0x80,0x7b]
233         cmovow	123(%r8,%rax,4), %dx, %ax
234# CHECK: cmovol	123(%r8,%rax,4), %ecx, %edx
235# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x40,0x4c,0x80,0x7b]
236         cmovol	123(%r8,%rax,4), %ecx, %edx
237# CHECK: cmovoq	123(%r8,%rax,4), %r9, %r15
238# CHECK: encoding: [0x62,0x54,0x84,0x18,0x40,0x4c,0x80,0x7b]
239         cmovoq	123(%r8,%rax,4), %r9, %r15
240# CHECK: cmovpw	%dx, %ax, %r9w
241# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4a,0xc2]
242         cmovpw	%dx, %ax, %r9w
243# CHECK: cmovpl	%ecx, %edx, %r10d
244# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4a,0xd1]
245         cmovpl	%ecx, %edx, %r10d
246# CHECK: cmovpq	%r9, %r15, %r11
247# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4a,0xf9]
248         cmovpq	%r9, %r15, %r11
249# CHECK: cmovpw	123(%r8,%rax,4), %dx, %ax
250# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4a,0x54,0x80,0x7b]
251         cmovpw	123(%r8,%rax,4), %dx, %ax
252# CHECK: cmovpl	123(%r8,%rax,4), %ecx, %edx
253# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4a,0x4c,0x80,0x7b]
254         cmovpl	123(%r8,%rax,4), %ecx, %edx
255# CHECK: cmovpq	123(%r8,%rax,4), %r9, %r15
256# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4a,0x4c,0x80,0x7b]
257         cmovpq	123(%r8,%rax,4), %r9, %r15
258# CHECK: cmovsw	%dx, %ax, %r9w
259# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x48,0xc2]
260         cmovsw	%dx, %ax, %r9w
261# CHECK: cmovsl	%ecx, %edx, %r10d
262# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x48,0xd1]
263         cmovsl	%ecx, %edx, %r10d
264# CHECK: cmovsq	%r9, %r15, %r11
265# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x48,0xf9]
266         cmovsq	%r9, %r15, %r11
267# CHECK: cmovsw	123(%r8,%rax,4), %dx, %ax
268# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x48,0x54,0x80,0x7b]
269         cmovsw	123(%r8,%rax,4), %dx, %ax
270# CHECK: cmovsl	123(%r8,%rax,4), %ecx, %edx
271# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x48,0x4c,0x80,0x7b]
272         cmovsl	123(%r8,%rax,4), %ecx, %edx
273# CHECK: cmovsq	123(%r8,%rax,4), %r9, %r15
274# CHECK: encoding: [0x62,0x54,0x84,0x18,0x48,0x4c,0x80,0x7b]
275         cmovsq	123(%r8,%rax,4), %r9, %r15
276# CHECK: cmovew	%dx, %ax, %r9w
277# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x44,0xc2]
278         cmovew	%dx, %ax, %r9w
279# CHECK: cmovel	%ecx, %edx, %r10d
280# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x44,0xd1]
281         cmovel	%ecx, %edx, %r10d
282# CHECK: cmoveq	%r9, %r15, %r11
283# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x44,0xf9]
284         cmoveq	%r9, %r15, %r11
285# CHECK: cmovew	123(%r8,%rax,4), %dx, %ax
286# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x44,0x54,0x80,0x7b]
287         cmovew	123(%r8,%rax,4), %dx, %ax
288# CHECK: cmovel	123(%r8,%rax,4), %ecx, %edx
289# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x44,0x4c,0x80,0x7b]
290         cmovel	123(%r8,%rax,4), %ecx, %edx
291# CHECK: cmoveq	123(%r8,%rax,4), %r9, %r15
292# CHECK: encoding: [0x62,0x54,0x84,0x18,0x44,0x4c,0x80,0x7b]
293         cmoveq	123(%r8,%rax,4), %r9, %r15
294