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: {evex} rolb $123, %bl 5# INTEL: {evex} rol bl, 123 60x62,0xf4,0x7c,0x08,0xc0,0xc3,0x7b 7 8# ATT: {nf} rolb $123, %bl 9# INTEL: {nf} rol bl, 123 100x62,0xf4,0x7c,0x0c,0xc0,0xc3,0x7b 11 12# ATT: rolb $123, %bl, %bl 13# INTEL: rol bl, bl, 123 140x62,0xf4,0x64,0x18,0xc0,0xc3,0x7b 15 16# ATT: {nf} rolb $123, %bl, %bl 17# INTEL: {nf} rol bl, bl, 123 180x62,0xf4,0x64,0x1c,0xc0,0xc3,0x7b 19 20# ATT: {evex} rolw $123, %dx 21# INTEL: {evex} rol dx, 123 220x62,0xf4,0x7d,0x08,0xc1,0xc2,0x7b 23 24# ATT: {nf} rolw $123, %dx 25# INTEL: {nf} rol dx, 123 260x62,0xf4,0x7d,0x0c,0xc1,0xc2,0x7b 27 28# ATT: rolw $123, %dx, %dx 29# INTEL: rol dx, dx, 123 300x62,0xf4,0x6d,0x18,0xc1,0xc2,0x7b 31 32# ATT: {nf} rolw $123, %dx, %dx 33# INTEL: {nf} rol dx, dx, 123 340x62,0xf4,0x6d,0x1c,0xc1,0xc2,0x7b 35 36# ATT: {evex} roll $123, %ecx 37# INTEL: {evex} rol ecx, 123 380x62,0xf4,0x7c,0x08,0xc1,0xc1,0x7b 39 40# ATT: {nf} roll $123, %ecx 41# INTEL: {nf} rol ecx, 123 420x62,0xf4,0x7c,0x0c,0xc1,0xc1,0x7b 43 44# ATT: roll $123, %ecx, %ecx 45# INTEL: rol ecx, ecx, 123 460x62,0xf4,0x74,0x18,0xc1,0xc1,0x7b 47 48# ATT: {nf} roll $123, %ecx, %ecx 49# INTEL: {nf} rol ecx, ecx, 123 500x62,0xf4,0x74,0x1c,0xc1,0xc1,0x7b 51 52# ATT: {evex} rolq $123, %r9 53# INTEL: {evex} rol r9, 123 540x62,0xd4,0xfc,0x08,0xc1,0xc1,0x7b 55 56# ATT: {nf} rolq $123, %r9 57# INTEL: {nf} rol r9, 123 580x62,0xd4,0xfc,0x0c,0xc1,0xc1,0x7b 59 60# ATT: rolq $123, %r9, %r9 61# INTEL: rol r9, r9, 123 620x62,0xd4,0xb4,0x18,0xc1,0xc1,0x7b 63 64# ATT: {nf} rolq $123, %r9, %r9 65# INTEL: {nf} rol r9, r9, 123 660x62,0xd4,0xb4,0x1c,0xc1,0xc1,0x7b 67 68# ATT: {evex} rolb $123, 291(%r8,%rax,4) 69# INTEL: {evex} rol byte ptr [r8 + 4*rax + 291], 123 700x62,0xd4,0x7c,0x08,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 71 72# ATT: {nf} rolb $123, 291(%r8,%rax,4) 73# INTEL: {nf} rol byte ptr [r8 + 4*rax + 291], 123 740x62,0xd4,0x7c,0x0c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 75 76# ATT: rolb $123, 291(%r8,%rax,4), %bl 77# INTEL: rol bl, byte ptr [r8 + 4*rax + 291], 123 780x62,0xd4,0x64,0x18,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 79 80# ATT: {nf} rolb $123, 291(%r8,%rax,4), %bl 81# INTEL: {nf} rol bl, byte ptr [r8 + 4*rax + 291], 123 820x62,0xd4,0x64,0x1c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 83 84# ATT: {evex} rolw $123, 291(%r8,%rax,4) 85# INTEL: {evex} rol word ptr [r8 + 4*rax + 291], 123 860x62,0xd4,0x7d,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 87 88# ATT: {nf} rolw $123, 291(%r8,%rax,4) 89# INTEL: {nf} rol word ptr [r8 + 4*rax + 291], 123 900x62,0xd4,0x7d,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 91 92# ATT: rolw $123, 291(%r8,%rax,4), %dx 93# INTEL: rol dx, word ptr [r8 + 4*rax + 291], 123 940x62,0xd4,0x6d,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 95 96# ATT: {nf} rolw $123, 291(%r8,%rax,4), %dx 97# INTEL: {nf} rol dx, word ptr [r8 + 4*rax + 291], 123 980x62,0xd4,0x6d,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 99 100# ATT: {evex} roll $123, 291(%r8,%rax,4) 101# INTEL: {evex} rol dword ptr [r8 + 4*rax + 291], 123 1020x62,0xd4,0x7c,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 103 104# ATT: {nf} roll $123, 291(%r8,%rax,4) 105# INTEL: {nf} rol dword ptr [r8 + 4*rax + 291], 123 1060x62,0xd4,0x7c,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 107 108# ATT: roll $123, 291(%r8,%rax,4), %ecx 109# INTEL: rol ecx, dword ptr [r8 + 4*rax + 291], 123 1100x62,0xd4,0x74,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 111 112# ATT: {nf} roll $123, 291(%r8,%rax,4), %ecx 113# INTEL: {nf} rol ecx, dword ptr [r8 + 4*rax + 291], 123 1140x62,0xd4,0x74,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 115 116# ATT: {evex} rolq $123, 291(%r8,%rax,4) 117# INTEL: {evex} rol qword ptr [r8 + 4*rax + 291], 123 1180x62,0xd4,0xfc,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 119 120# ATT: {nf} rolq $123, 291(%r8,%rax,4) 121# INTEL: {nf} rol qword ptr [r8 + 4*rax + 291], 123 1220x62,0xd4,0xfc,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 123 124# ATT: rolq $123, 291(%r8,%rax,4), %r9 125# INTEL: rol r9, qword ptr [r8 + 4*rax + 291], 123 1260x62,0xd4,0xb4,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 127 128# ATT: {nf} rolq $123, 291(%r8,%rax,4), %r9 129# INTEL: {nf} rol r9, qword ptr [r8 + 4*rax + 291], 123 1300x62,0xd4,0xb4,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b 131 132# ATT: {evex} rolb %bl 133# INTEL: {evex} rol bl 1340x62,0xf4,0x7c,0x08,0xd0,0xc3 135 136# ATT: {nf} rolb %bl 137# INTEL: {nf} rol bl 1380x62,0xf4,0x7c,0x0c,0xd0,0xc3 139 140# ATT: rolb %bl, %bl 141# INTEL: rol bl, bl 1420x62,0xf4,0x64,0x18,0xd0,0xc3 143 144# ATT: {nf} rolb %bl, %bl 145# INTEL: {nf} rol bl, bl 1460x62,0xf4,0x64,0x1c,0xd0,0xc3 147 148# ATT: {evex} rolb %cl, %bl 149# INTEL: {evex} rol bl, cl 1500x62,0xf4,0x7c,0x08,0xd2,0xc3 151 152# ATT: {nf} rolb %cl, %bl 153# INTEL: {nf} rol bl, cl 1540x62,0xf4,0x7c,0x0c,0xd2,0xc3 155 156# ATT: rolb %cl, %bl, %bl 157# INTEL: rol bl, bl, cl 1580x62,0xf4,0x64,0x18,0xd2,0xc3 159 160# ATT: {nf} rolb %cl, %bl, %bl 161# INTEL: {nf} rol bl, bl, cl 1620x62,0xf4,0x64,0x1c,0xd2,0xc3 163 164# ATT: {evex} rolw %cl, %dx 165# INTEL: {evex} rol dx, cl 1660x62,0xf4,0x7d,0x08,0xd3,0xc2 167 168# ATT: {nf} rolw %cl, %dx 169# INTEL: {nf} rol dx, cl 1700x62,0xf4,0x7d,0x0c,0xd3,0xc2 171 172# ATT: rolw %cl, %dx, %dx 173# INTEL: rol dx, dx, cl 1740x62,0xf4,0x6d,0x18,0xd3,0xc2 175 176# ATT: {nf} rolw %cl, %dx, %dx 177# INTEL: {nf} rol dx, dx, cl 1780x62,0xf4,0x6d,0x1c,0xd3,0xc2 179 180# ATT: {evex} roll %cl, %ecx 181# INTEL: {evex} rol ecx, cl 1820x62,0xf4,0x7c,0x08,0xd3,0xc1 183 184# ATT: {nf} roll %cl, %ecx 185# INTEL: {nf} rol ecx, cl 1860x62,0xf4,0x7c,0x0c,0xd3,0xc1 187 188# ATT: roll %cl, %ecx, %ecx 189# INTEL: rol ecx, ecx, cl 1900x62,0xf4,0x74,0x18,0xd3,0xc1 191 192# ATT: {nf} roll %cl, %ecx, %ecx 193# INTEL: {nf} rol ecx, ecx, cl 1940x62,0xf4,0x74,0x1c,0xd3,0xc1 195 196# ATT: {evex} rolq %cl, %r9 197# INTEL: {evex} rol r9, cl 1980x62,0xd4,0xfc,0x08,0xd3,0xc1 199 200# ATT: {nf} rolq %cl, %r9 201# INTEL: {nf} rol r9, cl 2020x62,0xd4,0xfc,0x0c,0xd3,0xc1 203 204# ATT: rolq %cl, %r9, %r9 205# INTEL: rol r9, r9, cl 2060x62,0xd4,0xb4,0x18,0xd3,0xc1 207 208# ATT: {nf} rolq %cl, %r9, %r9 209# INTEL: {nf} rol r9, r9, cl 2100x62,0xd4,0xb4,0x1c,0xd3,0xc1 211 212# ATT: {evex} rolb %cl, 291(%r8,%rax,4) 213# INTEL: {evex} rol byte ptr [r8 + 4*rax + 291], cl 2140x62,0xd4,0x7c,0x08,0xd2,0x84,0x80,0x23,0x01,0x00,0x00 215 216# ATT: {nf} rolb %cl, 291(%r8,%rax,4) 217# INTEL: {nf} rol byte ptr [r8 + 4*rax + 291], cl 2180x62,0xd4,0x7c,0x0c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00 219 220# ATT: rolb %cl, 291(%r8,%rax,4), %bl 221# INTEL: rol bl, byte ptr [r8 + 4*rax + 291], cl 2220x62,0xd4,0x64,0x18,0xd2,0x84,0x80,0x23,0x01,0x00,0x00 223 224# ATT: {nf} rolb %cl, 291(%r8,%rax,4), %bl 225# INTEL: {nf} rol bl, byte ptr [r8 + 4*rax + 291], cl 2260x62,0xd4,0x64,0x1c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00 227 228# ATT: {evex} rolw %cl, 291(%r8,%rax,4) 229# INTEL: {evex} rol word ptr [r8 + 4*rax + 291], cl 2300x62,0xd4,0x7d,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 231 232# ATT: {nf} rolw %cl, 291(%r8,%rax,4) 233# INTEL: {nf} rol word ptr [r8 + 4*rax + 291], cl 2340x62,0xd4,0x7d,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 235 236# ATT: rolw %cl, 291(%r8,%rax,4), %dx 237# INTEL: rol dx, word ptr [r8 + 4*rax + 291], cl 2380x62,0xd4,0x6d,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 239 240# ATT: {nf} rolw %cl, 291(%r8,%rax,4), %dx 241# INTEL: {nf} rol dx, word ptr [r8 + 4*rax + 291], cl 2420x62,0xd4,0x6d,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 243 244# ATT: {evex} roll %cl, 291(%r8,%rax,4) 245# INTEL: {evex} rol dword ptr [r8 + 4*rax + 291], cl 2460x62,0xd4,0x7c,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 247 248# ATT: {nf} roll %cl, 291(%r8,%rax,4) 249# INTEL: {nf} rol dword ptr [r8 + 4*rax + 291], cl 2500x62,0xd4,0x7c,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 251 252# ATT: roll %cl, 291(%r8,%rax,4), %ecx 253# INTEL: rol ecx, dword ptr [r8 + 4*rax + 291], cl 2540x62,0xd4,0x74,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 255 256# ATT: {nf} roll %cl, 291(%r8,%rax,4), %ecx 257# INTEL: {nf} rol ecx, dword ptr [r8 + 4*rax + 291], cl 2580x62,0xd4,0x74,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 259 260# ATT: {evex} rolq %cl, 291(%r8,%rax,4) 261# INTEL: {evex} rol qword ptr [r8 + 4*rax + 291], cl 2620x62,0xd4,0xfc,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 263 264# ATT: {nf} rolq %cl, 291(%r8,%rax,4) 265# INTEL: {nf} rol qword ptr [r8 + 4*rax + 291], cl 2660x62,0xd4,0xfc,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 267 268# ATT: rolq %cl, 291(%r8,%rax,4), %r9 269# INTEL: rol r9, qword ptr [r8 + 4*rax + 291], cl 2700x62,0xd4,0xb4,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 271 272# ATT: {nf} rolq %cl, 291(%r8,%rax,4), %r9 273# INTEL: {nf} rol r9, qword ptr [r8 + 4*rax + 291], cl 2740x62,0xd4,0xb4,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00 275 276# ATT: {evex} rolw %dx 277# INTEL: {evex} rol dx 2780x62,0xf4,0x7d,0x08,0xd1,0xc2 279 280# ATT: {nf} rolw %dx 281# INTEL: {nf} rol dx 2820x62,0xf4,0x7d,0x0c,0xd1,0xc2 283 284# ATT: rolw %dx, %dx 285# INTEL: rol dx, dx 2860x62,0xf4,0x6d,0x18,0xd1,0xc2 287 288# ATT: {nf} rolw %dx, %dx 289# INTEL: {nf} rol dx, dx 2900x62,0xf4,0x6d,0x1c,0xd1,0xc2 291 292# ATT: {evex} roll %ecx 293# INTEL: {evex} rol ecx 2940x62,0xf4,0x7c,0x08,0xd1,0xc1 295 296# ATT: {nf} roll %ecx 297# INTEL: {nf} rol ecx 2980x62,0xf4,0x7c,0x0c,0xd1,0xc1 299 300# ATT: roll %ecx, %ecx 301# INTEL: rol ecx, ecx 3020x62,0xf4,0x74,0x18,0xd1,0xc1 303 304# ATT: {nf} roll %ecx, %ecx 305# INTEL: {nf} rol ecx, ecx 3060x62,0xf4,0x74,0x1c,0xd1,0xc1 307 308# ATT: {evex} rolq %r9 309# INTEL: {evex} rol r9 3100x62,0xd4,0xfc,0x08,0xd1,0xc1 311 312# ATT: {nf} rolq %r9 313# INTEL: {nf} rol r9 3140x62,0xd4,0xfc,0x0c,0xd1,0xc1 315 316# ATT: rolq %r9, %r9 317# INTEL: rol r9, r9 3180x62,0xd4,0xb4,0x18,0xd1,0xc1 319 320# ATT: {nf} rolq %r9, %r9 321# INTEL: {nf} rol r9, r9 3220x62,0xd4,0xb4,0x1c,0xd1,0xc1 323 324# ATT: {evex} rolb 291(%r8,%rax,4) 325# INTEL: {evex} rol byte ptr [r8 + 4*rax + 291] 3260x62,0xd4,0x7c,0x08,0xd0,0x84,0x80,0x23,0x01,0x00,0x00 327 328# ATT: {nf} rolb 291(%r8,%rax,4) 329# INTEL: {nf} rol byte ptr [r8 + 4*rax + 291] 3300x62,0xd4,0x7c,0x0c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00 331 332# ATT: rolb 291(%r8,%rax,4), %bl 333# INTEL: rol bl, byte ptr [r8 + 4*rax + 291] 3340x62,0xd4,0x64,0x18,0xd0,0x84,0x80,0x23,0x01,0x00,0x00 335 336# ATT: {nf} rolb 291(%r8,%rax,4), %bl 337# INTEL: {nf} rol bl, byte ptr [r8 + 4*rax + 291] 3380x62,0xd4,0x64,0x1c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00 339 340# ATT: {evex} rolw 291(%r8,%rax,4) 341# INTEL: {evex} rol word ptr [r8 + 4*rax + 291] 3420x62,0xd4,0x7d,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 343 344# ATT: {nf} rolw 291(%r8,%rax,4) 345# INTEL: {nf} rol word ptr [r8 + 4*rax + 291] 3460x62,0xd4,0x7d,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 347 348# ATT: rolw 291(%r8,%rax,4), %dx 349# INTEL: rol dx, word ptr [r8 + 4*rax + 291] 3500x62,0xd4,0x6d,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 351 352# ATT: {nf} rolw 291(%r8,%rax,4), %dx 353# INTEL: {nf} rol dx, word ptr [r8 + 4*rax + 291] 3540x62,0xd4,0x6d,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 355 356# ATT: {evex} roll 291(%r8,%rax,4) 357# INTEL: {evex} rol dword ptr [r8 + 4*rax + 291] 3580x62,0xd4,0x7c,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 359 360# ATT: {nf} roll 291(%r8,%rax,4) 361# INTEL: {nf} rol dword ptr [r8 + 4*rax + 291] 3620x62,0xd4,0x7c,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 363 364# ATT: roll 291(%r8,%rax,4), %ecx 365# INTEL: rol ecx, dword ptr [r8 + 4*rax + 291] 3660x62,0xd4,0x74,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 367 368# ATT: {nf} roll 291(%r8,%rax,4), %ecx 369# INTEL: {nf} rol ecx, dword ptr [r8 + 4*rax + 291] 3700x62,0xd4,0x74,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 371 372# ATT: {evex} rolq 291(%r8,%rax,4) 373# INTEL: {evex} rol qword ptr [r8 + 4*rax + 291] 3740x62,0xd4,0xfc,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 375 376# ATT: {nf} rolq 291(%r8,%rax,4) 377# INTEL: {nf} rol qword ptr [r8 + 4*rax + 291] 3780x62,0xd4,0xfc,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 379 380# ATT: rolq 291(%r8,%rax,4), %r9 381# INTEL: rol r9, qword ptr [r8 + 4*rax + 291] 3820x62,0xd4,0xb4,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 383 384# ATT: {nf} rolq 291(%r8,%rax,4), %r9 385# INTEL: {nf} rol r9, qword ptr [r8 + 4*rax + 291] 3860x62,0xd4,0xb4,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00 387