1 # RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s
20 # PR8873: some instructions not recognized in 32-bit mode
28 # CHECK: crc32b %al, %eax
29 0xf2 0x0f 0x38 0xf0 0xc0
31 # CHECK: crc32w %ax, %eax
32 0x66 0xf2 0x0f 0x38 0xf1 0xc0
34 # CHECK: crc32l %eax, %eax
35 0xf2 0x0f 0x38 0xf1 0xc0
45 # CHECK: addb %al, (%eax)
49 0xe8 0x2e 0xfb 0xff 0xff
90 # CHECK: movl $0, -4(%ebp)
91 0xc7 0x45 0xfc 0x00 0x00 0x00 0x00
93 # CHECK: movl %cr0, %ecx
96 # CHECK: leal 4(%esp), %ecx
102 # CHECK: movw $47416, -66(%ebp)
103 0x66 0xc7 0x45 0xbe 0x38 0xb9
105 # CHECK: vaddpd %ymm5, %ymm1, %ymm0
106 0xc4 0xc1 0x75 0x58 0xc5
108 # CHECK: vaddps %ymm3, %ymm1, %ymm0
111 # CHECK: vandpd %ymm5, %ymm1, %ymm0
112 0xc4 0xc1 0x75 0x54 0xc5
114 # CHECK: vandps %ymm3, %ymm1, %ymm0
120 # CHECK: vcvtps2pd %xmm0, %ymm0
123 # CHECK: vandps (%edx), %xmm1, %xmm7
126 # CHECK: vcvtss2sil %xmm0, %eax
129 # CHECK: vcvtsd2si %xmm0, %eax
132 # CHECK: vcvtsd2si %xmm0, %eax
133 0xc4 0xe1 0x7b 0x2d 0xc0
135 # CHECK: vmaskmovpd %xmm0, %xmm1, (%eax)
136 0xc4 0xe2 0x71 0x2f 0x00
138 # CHECK: vmovapd %xmm0, %xmm2
141 # Check these special case instructions that the immediate is not sign-extend.
142 # CHECK: blendps $129, %xmm2, %xmm1
143 0x66 0x0f 0x3a 0x0c 0xca 0x81
145 # CHECK: blendpd $129, %xmm2, %xmm1
146 0x66 0x0f 0x3a 0x0d 0xca 0x81
148 # CHECK: pblendw $129, %xmm2, %xmm1
149 0x66 0x0f 0x3a 0x0e 0xca 0x81
151 # CHECK: mpsadbw $129, %xmm2, %xmm1
152 0x66 0x0f 0x3a 0x42 0xca 0x81
154 # CHECK: dpps $129, %xmm2, %xmm1
155 0x66 0x0f 0x3a 0x40 0xca 0x81
157 # CHECK: dppd $129, %xmm2, %xmm1
158 0x66 0x0f 0x3a 0x41 0xca 0x81
160 # CHECK: insertps $129, %xmm2, %xmm1
161 0x66 0x0f 0x3a 0x21 0xca 0x81
163 # CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
164 0xc4 0xe3 0x55 0x0c 0xca 0x81
166 # CHECK: vblendps $129, (%eax), %ymm5, %ymm1
167 0xc4 0xe3 0x55 0x0c 0x08 0x81
169 # CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
170 0xc4 0xe3 0x55 0x0d 0xca 0x81
172 # CHECK: vblendpd $129, (%eax), %ymm5, %ymm1
173 0xc4 0xe3 0x55 0x0d 0x08 0x81
175 # CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
176 0xc4 0xe3 0x51 0x0e 0xca 0x81
178 # CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
179 0xc4 0xe3 0x51 0x42 0xca 0x81
181 # CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
182 0xc4 0xe3 0x55 0x40 0xca 0x81
184 # CHECK: vdpps $129, (%eax), %ymm5, %ymm1
185 0xc4 0xe3 0x55 0x40 0x08 0x81
187 # CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
188 0xc4 0xe3 0x51 0x41 0xca 0x81
190 # CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
191 0xc4 0xe3 0x69 0x21 0xcb 0x81
196 # CHECK: addl %eax, %edi
199 # CHECK: addl %edi, %eax
202 # CHECK: movl %eax, %edi
205 # CHECK: movl %edi, %eax
208 # CHECK: movups %xmm1, %xmm0
211 # CHECK: movups %xmm0, %xmm1
214 # CHECK: movaps %xmm1, %xmm0
217 # CHECK: movaps %xmm0, %xmm1
220 # CHECK: movupd %xmm1, %xmm0
223 # CHECK: movupd %xmm0, %xmm1
226 # CHECK: movapd %xmm1, %xmm0
229 # CHECK: movapd %xmm0, %xmm1
232 # CHECK: vmovups %xmm1, %xmm0
235 # CHECK: vmovups %xmm0, %xmm1
238 # CHECK: vmovaps %xmm1, %xmm0
241 # CHECK: vmovaps %xmm0, %xmm1
244 # CHECK: vmovupd %xmm1, %xmm0
247 # CHECK: vmovupd %xmm0, %xmm1
250 # CHECK: vmovapd %xmm1, %xmm0
253 # CHECK: vmovapd %xmm0, %xmm1
256 # CHECK: vmovups %ymm1, %ymm0
259 # CHECK: vmovups %ymm0, %ymm1
262 # CHECK: vmovaps %ymm1, %ymm0
265 # CHECK: vmovaps %ymm0, %ymm1
268 # CHECK: movdqa %xmm1, %xmm0
271 # CHECK: movdqa %xmm0, %xmm1
274 # CHECK: movdqu %xmm1, %xmm0
277 # CHECK: movdqu %xmm0, %xmm1
280 # CHECK: vmovdqa %xmm1, %xmm0
283 # CHECK: vmovdqa %xmm0, %xmm1
286 # CHECK: vmovdqa %ymm1, %ymm0
289 # CHECK: vmovdqa %ymm0, %ymm1
292 # CHECK: vmovdqu %xmm1, %xmm0
295 # CHECK: vmovdqu %xmm0, %xmm1
298 # CHECK: vmovdqu %ymm1, %ymm0
301 # CHECK: vmovdqu %ymm0, %ymm1
304 # CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
305 0xc4 0xe3 0x69 0x4a 0xd9 0x41
307 # CHECK: vroundpd $0, %xmm0, %xmm0
308 0xc4 0xe3 0x79 0x09 0xc0 0x00
310 # CHECK: vroundps $0, %xmm0, %xmm0
311 0xc4 0xe3 0x79 0x08 0xc0 0x00
313 # CHECK: vroundpd $0, %ymm0, %ymm0
314 0xc4 0xe3 0x7d 0x09 0xc0 0x00
316 # CHECK: vroundps $0, %ymm0, %ymm0
317 0xc4 0xe3 0x7d 0x08 0xc0 0x00
319 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
320 0xc4 0xe3 0x79 0x0a 0xc0 0x00
322 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
323 0xc4 0xe3 0x79 0x0b 0xc0 0x00
325 # CHECK: invept (%eax), %eax
326 0x66 0x0f 0x38 0x80 0x00
328 # CHECK: invvpid (%eax), %eax
329 0x66 0x0f 0x38 0x81 0x00
334 # CHECK: addb $0, %al
337 # CHECK: addw $0, %ax
340 # CHECK: addl $0, %eax
341 0x05 0x00 0x00 0x00 0x00
343 # CHECK: adcb $0, %al
346 # CHECK: adcw $0, %ax
349 # CHECK: adcl $0, %eax
350 0x15 0x00 0x00 0x00 0x00
352 # CHECK: cmpb $0, %al
355 # CHECK: cmpw $0, %ax
358 # CHECK: cmpl $0, %eax
359 0x3d 0x00 0x00 0x00 0x00
361 # CHECK: testb $0, %al
364 # CHECK: testw $0, %ax
367 # CHECK: testl $0, %eax
368 0xa9 0x00 0x00 0x00 0x00
371 0xa0 0x00 0x00 0x00 0x00
374 0x66 0xa1 0x00 0x00 0x00 0x00
376 # CHECK: movl 0, %eax
377 0xa1 0x00 0x00 0x00 0x00
380 0xa2 0x00 0x00 0x00 0x00
383 0x66 0xa3 0x00 0x00 0x00 0x00
385 # CHECK: movl %eax, 0
386 0xa3 0x00 0x00 0x00 0x00
388 # CHECK: vaddps %xmm3, %xmm7, %xmm0
389 0xc4 0xe1 0x00 0x58 0xc3
391 # CHECK: movbel (%eax), %eax
394 # CHECK: movbel %eax, (%eax)
397 # CHECK: movbew (%eax), %ax
398 0x66 0x0f 0x38 0xf0 0x00
400 # CHECK: movbew %ax, (%eax)
401 0x66 0x0f 0x38 0xf1 0x00
406 # CHECK: rdrandl %eax
409 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
410 0xc4 0xe3 0x7d 0x0a 0xc0 0x00
412 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
413 0xc4 0xe3 0x7d 0x0b 0xc0 0x00
415 # CHECK: vcvtsd2si %xmm0, %eax
416 0xc4 0xe1 0x7f 0x2d 0xc0
418 # CHECK: vcvtsd2si %xmm0, %eax
419 0xc4 0xe1 0xff 0x2d 0xc0
421 # CHECK: vucomisd %xmm1, %xmm0
424 # CHECK: vucomiss %xmm1, %xmm0
427 # CHECK: vcomisd %xmm1, %xmm0
430 # CHECK: vcomiss %xmm1, %xmm0
433 # CHECK: vaddss %xmm1, %xmm0, %xmm0