1# RUN: llvm-mc -triple x86_64 -disassemble %s | FileCheck %s --check-prefix=ATT 2# RUN: llvm-mc -triple x86_64 -disassemble -output-asm-variant=1 %s | FileCheck %s --check-prefix=INTEL 3 4# ATT: cmovbw %dx, %ax, %r9w 5# INTEL: cmovb r9w, ax, dx 60x62,0xf4,0x35,0x18,0x42,0xc2 7 8# ATT: cmovbl %ecx, %edx, %r10d 9# INTEL: cmovb r10d, edx, ecx 100x62,0xf4,0x2c,0x18,0x42,0xd1 11 12# ATT: cmovbq %r9, %r15, %r11 13# INTEL: cmovb r11, r15, r9 140x62,0x54,0xa4,0x18,0x42,0xf9 15 16# ATT: cmovbw 123(%r8,%rax,4), %dx, %ax 17# INTEL: cmovb ax, dx, word ptr [r8 + 4*rax + 123] 180x62,0xd4,0x7d,0x18,0x42,0x54,0x80,0x7b 19 20# ATT: cmovbl 123(%r8,%rax,4), %ecx, %edx 21# INTEL: cmovb edx, ecx, dword ptr [r8 + 4*rax + 123] 220x62,0xd4,0x6c,0x18,0x42,0x4c,0x80,0x7b 23 24# ATT: cmovbq 123(%r8,%rax,4), %r9, %r15 25# INTEL: cmovb r15, r9, qword ptr [r8 + 4*rax + 123] 260x62,0x54,0x84,0x18,0x42,0x4c,0x80,0x7b 27 28# ATT: cmovbew %dx, %ax, %r9w 29# INTEL: cmovbe r9w, ax, dx 300x62,0xf4,0x35,0x18,0x46,0xc2 31 32# ATT: cmovbel %ecx, %edx, %r10d 33# INTEL: cmovbe r10d, edx, ecx 340x62,0xf4,0x2c,0x18,0x46,0xd1 35 36# ATT: cmovbeq %r9, %r15, %r11 37# INTEL: cmovbe r11, r15, r9 380x62,0x54,0xa4,0x18,0x46,0xf9 39 40# ATT: cmovbew 123(%r8,%rax,4), %dx, %ax 41# INTEL: cmovbe ax, dx, word ptr [r8 + 4*rax + 123] 420x62,0xd4,0x7d,0x18,0x46,0x54,0x80,0x7b 43 44# ATT: cmovbel 123(%r8,%rax,4), %ecx, %edx 45# INTEL: cmovbe edx, ecx, dword ptr [r8 + 4*rax + 123] 460x62,0xd4,0x6c,0x18,0x46,0x4c,0x80,0x7b 47 48# ATT: cmovbeq 123(%r8,%rax,4), %r9, %r15 49# INTEL: cmovbe r15, r9, qword ptr [r8 + 4*rax + 123] 500x62,0x54,0x84,0x18,0x46,0x4c,0x80,0x7b 51 52# ATT: cmovlw %dx, %ax, %r9w 53# INTEL: cmovl r9w, ax, dx 540x62,0xf4,0x35,0x18,0x4c,0xc2 55 56# ATT: cmovll %ecx, %edx, %r10d 57# INTEL: cmovl r10d, edx, ecx 580x62,0xf4,0x2c,0x18,0x4c,0xd1 59 60# ATT: cmovlq %r9, %r15, %r11 61# INTEL: cmovl r11, r15, r9 620x62,0x54,0xa4,0x18,0x4c,0xf9 63 64# ATT: cmovlw 123(%r8,%rax,4), %dx, %ax 65# INTEL: cmovl ax, dx, word ptr [r8 + 4*rax + 123] 660x62,0xd4,0x7d,0x18,0x4c,0x54,0x80,0x7b 67 68# ATT: cmovll 123(%r8,%rax,4), %ecx, %edx 69# INTEL: cmovl edx, ecx, dword ptr [r8 + 4*rax + 123] 700x62,0xd4,0x6c,0x18,0x4c,0x4c,0x80,0x7b 71 72# ATT: cmovlq 123(%r8,%rax,4), %r9, %r15 73# INTEL: cmovl r15, r9, qword ptr [r8 + 4*rax + 123] 740x62,0x54,0x84,0x18,0x4c,0x4c,0x80,0x7b 75 76# ATT: cmovlew %dx, %ax, %r9w 77# INTEL: cmovle r9w, ax, dx 780x62,0xf4,0x35,0x18,0x4e,0xc2 79 80# ATT: cmovlel %ecx, %edx, %r10d 81# INTEL: cmovle r10d, edx, ecx 820x62,0xf4,0x2c,0x18,0x4e,0xd1 83 84# ATT: cmovleq %r9, %r15, %r11 85# INTEL: cmovle r11, r15, r9 860x62,0x54,0xa4,0x18,0x4e,0xf9 87 88# ATT: cmovlew 123(%r8,%rax,4), %dx, %ax 89# INTEL: cmovle ax, dx, word ptr [r8 + 4*rax + 123] 900x62,0xd4,0x7d,0x18,0x4e,0x54,0x80,0x7b 91 92# ATT: cmovlel 123(%r8,%rax,4), %ecx, %edx 93# INTEL: cmovle edx, ecx, dword ptr [r8 + 4*rax + 123] 940x62,0xd4,0x6c,0x18,0x4e,0x4c,0x80,0x7b 95 96# ATT: cmovleq 123(%r8,%rax,4), %r9, %r15 97# INTEL: cmovle r15, r9, qword ptr [r8 + 4*rax + 123] 980x62,0x54,0x84,0x18,0x4e,0x4c,0x80,0x7b 99 100# ATT: cmovaew %dx, %ax, %r9w 101# INTEL: cmovae r9w, ax, dx 1020x62,0xf4,0x35,0x18,0x43,0xc2 103 104# ATT: cmovael %ecx, %edx, %r10d 105# INTEL: cmovae r10d, edx, ecx 1060x62,0xf4,0x2c,0x18,0x43,0xd1 107 108# ATT: cmovaeq %r9, %r15, %r11 109# INTEL: cmovae r11, r15, r9 1100x62,0x54,0xa4,0x18,0x43,0xf9 111 112# ATT: cmovaew 123(%r8,%rax,4), %dx, %ax 113# INTEL: cmovae ax, dx, word ptr [r8 + 4*rax + 123] 1140x62,0xd4,0x7d,0x18,0x43,0x54,0x80,0x7b 115 116# ATT: cmovael 123(%r8,%rax,4), %ecx, %edx 117# INTEL: cmovae edx, ecx, dword ptr [r8 + 4*rax + 123] 1180x62,0xd4,0x6c,0x18,0x43,0x4c,0x80,0x7b 119 120# ATT: cmovaeq 123(%r8,%rax,4), %r9, %r15 121# INTEL: cmovae r15, r9, qword ptr [r8 + 4*rax + 123] 1220x62,0x54,0x84,0x18,0x43,0x4c,0x80,0x7b 123 124# ATT: cmovaw %dx, %ax, %r9w 125# INTEL: cmova r9w, ax, dx 1260x62,0xf4,0x35,0x18,0x47,0xc2 127 128# ATT: cmoval %ecx, %edx, %r10d 129# INTEL: cmova r10d, edx, ecx 1300x62,0xf4,0x2c,0x18,0x47,0xd1 131 132# ATT: cmovaq %r9, %r15, %r11 133# INTEL: cmova r11, r15, r9 1340x62,0x54,0xa4,0x18,0x47,0xf9 135 136# ATT: cmovaw 123(%r8,%rax,4), %dx, %ax 137# INTEL: cmova ax, dx, word ptr [r8 + 4*rax + 123] 1380x62,0xd4,0x7d,0x18,0x47,0x54,0x80,0x7b 139 140# ATT: cmoval 123(%r8,%rax,4), %ecx, %edx 141# INTEL: cmova edx, ecx, dword ptr [r8 + 4*rax + 123] 1420x62,0xd4,0x6c,0x18,0x47,0x4c,0x80,0x7b 143 144# ATT: cmovaq 123(%r8,%rax,4), %r9, %r15 145# INTEL: cmova r15, r9, qword ptr [r8 + 4*rax + 123] 1460x62,0x54,0x84,0x18,0x47,0x4c,0x80,0x7b 147 148# ATT: cmovgew %dx, %ax, %r9w 149# INTEL: cmovge r9w, ax, dx 1500x62,0xf4,0x35,0x18,0x4d,0xc2 151 152# ATT: cmovgel %ecx, %edx, %r10d 153# INTEL: cmovge r10d, edx, ecx 1540x62,0xf4,0x2c,0x18,0x4d,0xd1 155 156# ATT: cmovgeq %r9, %r15, %r11 157# INTEL: cmovge r11, r15, r9 1580x62,0x54,0xa4,0x18,0x4d,0xf9 159 160# ATT: cmovgew 123(%r8,%rax,4), %dx, %ax 161# INTEL: cmovge ax, dx, word ptr [r8 + 4*rax + 123] 1620x62,0xd4,0x7d,0x18,0x4d,0x54,0x80,0x7b 163 164# ATT: cmovgel 123(%r8,%rax,4), %ecx, %edx 165# INTEL: cmovge edx, ecx, dword ptr [r8 + 4*rax + 123] 1660x62,0xd4,0x6c,0x18,0x4d,0x4c,0x80,0x7b 167 168# ATT: cmovgeq 123(%r8,%rax,4), %r9, %r15 169# INTEL: cmovge r15, r9, qword ptr [r8 + 4*rax + 123] 1700x62,0x54,0x84,0x18,0x4d,0x4c,0x80,0x7b 171 172# ATT: cmovgw %dx, %ax, %r9w 173# INTEL: cmovg r9w, ax, dx 1740x62,0xf4,0x35,0x18,0x4f,0xc2 175 176# ATT: cmovgl %ecx, %edx, %r10d 177# INTEL: cmovg r10d, edx, ecx 1780x62,0xf4,0x2c,0x18,0x4f,0xd1 179 180# ATT: cmovgq %r9, %r15, %r11 181# INTEL: cmovg r11, r15, r9 1820x62,0x54,0xa4,0x18,0x4f,0xf9 183 184# ATT: cmovgw 123(%r8,%rax,4), %dx, %ax 185# INTEL: cmovg ax, dx, word ptr [r8 + 4*rax + 123] 1860x62,0xd4,0x7d,0x18,0x4f,0x54,0x80,0x7b 187 188# ATT: cmovgl 123(%r8,%rax,4), %ecx, %edx 189# INTEL: cmovg edx, ecx, dword ptr [r8 + 4*rax + 123] 1900x62,0xd4,0x6c,0x18,0x4f,0x4c,0x80,0x7b 191 192# ATT: cmovgq 123(%r8,%rax,4), %r9, %r15 193# INTEL: cmovg r15, r9, qword ptr [r8 + 4*rax + 123] 1940x62,0x54,0x84,0x18,0x4f,0x4c,0x80,0x7b 195 196# ATT: cmovnow %dx, %ax, %r9w 197# INTEL: cmovno r9w, ax, dx 1980x62,0xf4,0x35,0x18,0x41,0xc2 199 200# ATT: cmovnol %ecx, %edx, %r10d 201# INTEL: cmovno r10d, edx, ecx 2020x62,0xf4,0x2c,0x18,0x41,0xd1 203 204# ATT: cmovnoq %r9, %r15, %r11 205# INTEL: cmovno r11, r15, r9 2060x62,0x54,0xa4,0x18,0x41,0xf9 207 208# ATT: cmovnow 123(%r8,%rax,4), %dx, %ax 209# INTEL: cmovno ax, dx, word ptr [r8 + 4*rax + 123] 2100x62,0xd4,0x7d,0x18,0x41,0x54,0x80,0x7b 211 212# ATT: cmovnol 123(%r8,%rax,4), %ecx, %edx 213# INTEL: cmovno edx, ecx, dword ptr [r8 + 4*rax + 123] 2140x62,0xd4,0x6c,0x18,0x41,0x4c,0x80,0x7b 215 216# ATT: cmovnoq 123(%r8,%rax,4), %r9, %r15 217# INTEL: cmovno r15, r9, qword ptr [r8 + 4*rax + 123] 2180x62,0x54,0x84,0x18,0x41,0x4c,0x80,0x7b 219 220# ATT: cmovnpw %dx, %ax, %r9w 221# INTEL: cmovnp r9w, ax, dx 2220x62,0xf4,0x35,0x18,0x4b,0xc2 223 224# ATT: cmovnpl %ecx, %edx, %r10d 225# INTEL: cmovnp r10d, edx, ecx 2260x62,0xf4,0x2c,0x18,0x4b,0xd1 227 228# ATT: cmovnpq %r9, %r15, %r11 229# INTEL: cmovnp r11, r15, r9 2300x62,0x54,0xa4,0x18,0x4b,0xf9 231 232# ATT: cmovnpw 123(%r8,%rax,4), %dx, %ax 233# INTEL: cmovnp ax, dx, word ptr [r8 + 4*rax + 123] 2340x62,0xd4,0x7d,0x18,0x4b,0x54,0x80,0x7b 235 236# ATT: cmovnpl 123(%r8,%rax,4), %ecx, %edx 237# INTEL: cmovnp edx, ecx, dword ptr [r8 + 4*rax + 123] 2380x62,0xd4,0x6c,0x18,0x4b,0x4c,0x80,0x7b 239 240# ATT: cmovnpq 123(%r8,%rax,4), %r9, %r15 241# INTEL: cmovnp r15, r9, qword ptr [r8 + 4*rax + 123] 2420x62,0x54,0x84,0x18,0x4b,0x4c,0x80,0x7b 243 244# ATT: cmovnsw %dx, %ax, %r9w 245# INTEL: cmovns r9w, ax, dx 2460x62,0xf4,0x35,0x18,0x49,0xc2 247 248# ATT: cmovnsl %ecx, %edx, %r10d 249# INTEL: cmovns r10d, edx, ecx 2500x62,0xf4,0x2c,0x18,0x49,0xd1 251 252# ATT: cmovnsq %r9, %r15, %r11 253# INTEL: cmovns r11, r15, r9 2540x62,0x54,0xa4,0x18,0x49,0xf9 255 256# ATT: cmovnsw 123(%r8,%rax,4), %dx, %ax 257# INTEL: cmovns ax, dx, word ptr [r8 + 4*rax + 123] 2580x62,0xd4,0x7d,0x18,0x49,0x54,0x80,0x7b 259 260# ATT: cmovnsl 123(%r8,%rax,4), %ecx, %edx 261# INTEL: cmovns edx, ecx, dword ptr [r8 + 4*rax + 123] 2620x62,0xd4,0x6c,0x18,0x49,0x4c,0x80,0x7b 263 264# ATT: cmovnsq 123(%r8,%rax,4), %r9, %r15 265# INTEL: cmovns r15, r9, qword ptr [r8 + 4*rax + 123] 2660x62,0x54,0x84,0x18,0x49,0x4c,0x80,0x7b 267 268# ATT: cmovnew %dx, %ax, %r9w 269# INTEL: cmovne r9w, ax, dx 2700x62,0xf4,0x35,0x18,0x45,0xc2 271 272# ATT: cmovnel %ecx, %edx, %r10d 273# INTEL: cmovne r10d, edx, ecx 2740x62,0xf4,0x2c,0x18,0x45,0xd1 275 276# ATT: cmovneq %r9, %r15, %r11 277# INTEL: cmovne r11, r15, r9 2780x62,0x54,0xa4,0x18,0x45,0xf9 279 280# ATT: cmovnew 123(%r8,%rax,4), %dx, %ax 281# INTEL: cmovne ax, dx, word ptr [r8 + 4*rax + 123] 2820x62,0xd4,0x7d,0x18,0x45,0x54,0x80,0x7b 283 284# ATT: cmovnel 123(%r8,%rax,4), %ecx, %edx 285# INTEL: cmovne edx, ecx, dword ptr [r8 + 4*rax + 123] 2860x62,0xd4,0x6c,0x18,0x45,0x4c,0x80,0x7b 287 288# ATT: cmovneq 123(%r8,%rax,4), %r9, %r15 289# INTEL: cmovne r15, r9, qword ptr [r8 + 4*rax + 123] 2900x62,0x54,0x84,0x18,0x45,0x4c,0x80,0x7b 291 292# ATT: cmovow %dx, %ax, %r9w 293# INTEL: cmovo r9w, ax, dx 2940x62,0xf4,0x35,0x18,0x40,0xc2 295 296# ATT: cmovol %ecx, %edx, %r10d 297# INTEL: cmovo r10d, edx, ecx 2980x62,0xf4,0x2c,0x18,0x40,0xd1 299 300# ATT: cmovoq %r9, %r15, %r11 301# INTEL: cmovo r11, r15, r9 3020x62,0x54,0xa4,0x18,0x40,0xf9 303 304# ATT: cmovow 123(%r8,%rax,4), %dx, %ax 305# INTEL: cmovo ax, dx, word ptr [r8 + 4*rax + 123] 3060x62,0xd4,0x7d,0x18,0x40,0x54,0x80,0x7b 307 308# ATT: cmovol 123(%r8,%rax,4), %ecx, %edx 309# INTEL: cmovo edx, ecx, dword ptr [r8 + 4*rax + 123] 3100x62,0xd4,0x6c,0x18,0x40,0x4c,0x80,0x7b 311 312# ATT: cmovoq 123(%r8,%rax,4), %r9, %r15 313# INTEL: cmovo r15, r9, qword ptr [r8 + 4*rax + 123] 3140x62,0x54,0x84,0x18,0x40,0x4c,0x80,0x7b 315 316# ATT: cmovpw %dx, %ax, %r9w 317# INTEL: cmovp r9w, ax, dx 3180x62,0xf4,0x35,0x18,0x4a,0xc2 319 320# ATT: cmovpl %ecx, %edx, %r10d 321# INTEL: cmovp r10d, edx, ecx 3220x62,0xf4,0x2c,0x18,0x4a,0xd1 323 324# ATT: cmovpq %r9, %r15, %r11 325# INTEL: cmovp r11, r15, r9 3260x62,0x54,0xa4,0x18,0x4a,0xf9 327 328# ATT: cmovpw 123(%r8,%rax,4), %dx, %ax 329# INTEL: cmovp ax, dx, word ptr [r8 + 4*rax + 123] 3300x62,0xd4,0x7d,0x18,0x4a,0x54,0x80,0x7b 331 332# ATT: cmovpl 123(%r8,%rax,4), %ecx, %edx 333# INTEL: cmovp edx, ecx, dword ptr [r8 + 4*rax + 123] 3340x62,0xd4,0x6c,0x18,0x4a,0x4c,0x80,0x7b 335 336# ATT: cmovpq 123(%r8,%rax,4), %r9, %r15 337# INTEL: cmovp r15, r9, qword ptr [r8 + 4*rax + 123] 3380x62,0x54,0x84,0x18,0x4a,0x4c,0x80,0x7b 339 340# ATT: cmovsw %dx, %ax, %r9w 341# INTEL: cmovs r9w, ax, dx 3420x62,0xf4,0x35,0x18,0x48,0xc2 343 344# ATT: cmovsl %ecx, %edx, %r10d 345# INTEL: cmovs r10d, edx, ecx 3460x62,0xf4,0x2c,0x18,0x48,0xd1 347 348# ATT: cmovsq %r9, %r15, %r11 349# INTEL: cmovs r11, r15, r9 3500x62,0x54,0xa4,0x18,0x48,0xf9 351 352# ATT: cmovsw 123(%r8,%rax,4), %dx, %ax 353# INTEL: cmovs ax, dx, word ptr [r8 + 4*rax + 123] 3540x62,0xd4,0x7d,0x18,0x48,0x54,0x80,0x7b 355 356# ATT: cmovsl 123(%r8,%rax,4), %ecx, %edx 357# INTEL: cmovs edx, ecx, dword ptr [r8 + 4*rax + 123] 3580x62,0xd4,0x6c,0x18,0x48,0x4c,0x80,0x7b 359 360# ATT: cmovsq 123(%r8,%rax,4), %r9, %r15 361# INTEL: cmovs r15, r9, qword ptr [r8 + 4*rax + 123] 3620x62,0x54,0x84,0x18,0x48,0x4c,0x80,0x7b 363 364# ATT: cmovew %dx, %ax, %r9w 365# INTEL: cmove r9w, ax, dx 3660x62,0xf4,0x35,0x18,0x44,0xc2 367 368# ATT: cmovel %ecx, %edx, %r10d 369# INTEL: cmove r10d, edx, ecx 3700x62,0xf4,0x2c,0x18,0x44,0xd1 371 372# ATT: cmoveq %r9, %r15, %r11 373# INTEL: cmove r11, r15, r9 3740x62,0x54,0xa4,0x18,0x44,0xf9 375 376# ATT: cmovew 123(%r8,%rax,4), %dx, %ax 377# INTEL: cmove ax, dx, word ptr [r8 + 4*rax + 123] 3780x62,0xd4,0x7d,0x18,0x44,0x54,0x80,0x7b 379 380# ATT: cmovel 123(%r8,%rax,4), %ecx, %edx 381# INTEL: cmove edx, ecx, dword ptr [r8 + 4*rax + 123] 3820x62,0xd4,0x6c,0x18,0x44,0x4c,0x80,0x7b 383 384# ATT: cmoveq 123(%r8,%rax,4), %r9, %r15 385# INTEL: cmove r15, r9, qword ptr [r8 + 4*rax + 123] 3860x62,0x54,0x84,0x18,0x44,0x4c,0x80,0x7b 387