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-94: error: 5# ERROR-NOT: error: 6# CHECK: {evex} rolb $123, %bl 7# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc0,0xc3,0x7b] 8 {evex} rolb $123, %bl 9# CHECK: {nf} rolb $123, %bl 10# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc0,0xc3,0x7b] 11 {nf} rolb $123, %bl 12# CHECK: rolb $123, %bl, %bl 13# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xc0,0xc3,0x7b] 14 rolb $123, %bl, %bl 15# CHECK: {nf} rolb $123, %bl, %bl 16# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xc0,0xc3,0x7b] 17 {nf} rolb $123, %bl, %bl 18# CHECK: {evex} rolw $123, %dx 19# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xc1,0xc2,0x7b] 20 {evex} rolw $123, %dx 21# CHECK: {nf} rolw $123, %dx 22# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xc1,0xc2,0x7b] 23 {nf} rolw $123, %dx 24# CHECK: rolw $123, %dx, %dx 25# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xc1,0xc2,0x7b] 26 rolw $123, %dx, %dx 27# CHECK: {nf} rolw $123, %dx, %dx 28# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xc1,0xc2,0x7b] 29 {nf} rolw $123, %dx, %dx 30# CHECK: {evex} roll $123, %ecx 31# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc1,0xc1,0x7b] 32 {evex} roll $123, %ecx 33# CHECK: {nf} roll $123, %ecx 34# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc1,0xc1,0x7b] 35 {nf} roll $123, %ecx 36# CHECK: roll $123, %ecx, %ecx 37# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xc1,0xc1,0x7b] 38 roll $123, %ecx, %ecx 39# CHECK: {nf} roll $123, %ecx, %ecx 40# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xc1,0xc1,0x7b] 41 {nf} roll $123, %ecx, %ecx 42# CHECK: {evex} rolq $123, %r9 43# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0xc1,0x7b] 44 {evex} rolq $123, %r9 45# CHECK: {nf} rolq $123, %r9 46# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0xc1,0x7b] 47 {nf} rolq $123, %r9 48# CHECK: rolq $123, %r9, %r9 49# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xc1,0x7b] 50 rolq $123, %r9, %r9 51# CHECK: {nf} rolq $123, %r9, %r9 52# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xc1,0x7b] 53 {nf} rolq $123, %r9, %r9 54# CHECK: {evex} rolb $123, 291(%r8,%rax,4) 55# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 56 {evex} rolb $123, 291(%r8,%rax,4) 57# CHECK: {nf} rolb $123, 291(%r8,%rax,4) 58# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 59 {nf} rolb $123, 291(%r8,%rax,4) 60# CHECK: rolb $123, 291(%r8,%rax,4), %bl 61# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 62 rolb $123, 291(%r8,%rax,4), %bl 63# CHECK: {nf} rolb $123, 291(%r8,%rax,4), %bl 64# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 65 {nf} rolb $123, 291(%r8,%rax,4), %bl 66# CHECK: {evex} rolw $123, 291(%r8,%rax,4) 67# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 68 {evex} rolw $123, 291(%r8,%rax,4) 69# CHECK: {nf} rolw $123, 291(%r8,%rax,4) 70# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 71 {nf} rolw $123, 291(%r8,%rax,4) 72# CHECK: rolw $123, 291(%r8,%rax,4), %dx 73# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 74 rolw $123, 291(%r8,%rax,4), %dx 75# CHECK: {nf} rolw $123, 291(%r8,%rax,4), %dx 76# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 77 {nf} rolw $123, 291(%r8,%rax,4), %dx 78# CHECK: {evex} roll $123, 291(%r8,%rax,4) 79# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 80 {evex} roll $123, 291(%r8,%rax,4) 81# CHECK: {nf} roll $123, 291(%r8,%rax,4) 82# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 83 {nf} roll $123, 291(%r8,%rax,4) 84# CHECK: roll $123, 291(%r8,%rax,4), %ecx 85# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 86 roll $123, 291(%r8,%rax,4), %ecx 87# CHECK: {nf} roll $123, 291(%r8,%rax,4), %ecx 88# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 89 {nf} roll $123, 291(%r8,%rax,4), %ecx 90# CHECK: {evex} rolq $123, 291(%r8,%rax,4) 91# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 92 {evex} rolq $123, 291(%r8,%rax,4) 93# CHECK: {nf} rolq $123, 291(%r8,%rax,4) 94# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 95 {nf} rolq $123, 291(%r8,%rax,4) 96# CHECK: rolq $123, 291(%r8,%rax,4), %r9 97# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 98 rolq $123, 291(%r8,%rax,4), %r9 99# CHECK: {nf} rolq $123, 291(%r8,%rax,4), %r9 100# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b] 101 {nf} rolq $123, 291(%r8,%rax,4), %r9 102# CHECK: {evex} rolb %bl 103# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd0,0xc3] 104 {evex} rolb %bl 105# CHECK: {nf} rolb %bl 106# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd0,0xc3] 107 {nf} rolb %bl 108# CHECK: {evex} rolb %cl, %bl 109# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd2,0xc3] 110 {evex} rolb %cl, %bl 111# CHECK: {nf} rolb %cl, %bl 112# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd2,0xc3] 113 {nf} rolb %cl, %bl 114# CHECK: rolb %cl, %bl, %bl 115# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xd2,0xc3] 116 rolb %cl, %bl, %bl 117# CHECK: {nf} rolb %cl, %bl, %bl 118# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xd2,0xc3] 119 {nf} rolb %cl, %bl, %bl 120# CHECK: {evex} rolw %cl, %dx 121# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd3,0xc2] 122 {evex} rolw %cl, %dx 123# CHECK: {nf} rolw %cl, %dx 124# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd3,0xc2] 125 {nf} rolw %cl, %dx 126# CHECK: rolw %cl, %dx, %dx 127# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd3,0xc2] 128 rolw %cl, %dx, %dx 129# CHECK: {nf} rolw %cl, %dx, %dx 130# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd3,0xc2] 131 {nf} rolw %cl, %dx, %dx 132# CHECK: {evex} roll %cl, %ecx 133# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd3,0xc1] 134 {evex} roll %cl, %ecx 135# CHECK: {nf} roll %cl, %ecx 136# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd3,0xc1] 137 {nf} roll %cl, %ecx 138# CHECK: roll %cl, %ecx, %ecx 139# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd3,0xc1] 140 roll %cl, %ecx, %ecx 141# CHECK: {nf} roll %cl, %ecx, %ecx 142# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd3,0xc1] 143 {nf} roll %cl, %ecx, %ecx 144# CHECK: {evex} rolq %cl, %r9 145# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0xc1] 146 {evex} rolq %cl, %r9 147# CHECK: {nf} rolq %cl, %r9 148# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0xc1] 149 {nf} rolq %cl, %r9 150# CHECK: rolq %cl, %r9, %r9 151# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xc1] 152 rolq %cl, %r9, %r9 153# CHECK: {nf} rolq %cl, %r9, %r9 154# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xc1] 155 {nf} rolq %cl, %r9, %r9 156# CHECK: {evex} rolb %cl, 291(%r8,%rax,4) 157# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd2,0x84,0x80,0x23,0x01,0x00,0x00] 158 {evex} rolb %cl, 291(%r8,%rax,4) 159# CHECK: {nf} rolb %cl, 291(%r8,%rax,4) 160# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00] 161 {nf} rolb %cl, 291(%r8,%rax,4) 162# CHECK: rolb %cl, 291(%r8,%rax,4), %bl 163# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd2,0x84,0x80,0x23,0x01,0x00,0x00] 164 rolb %cl, 291(%r8,%rax,4), %bl 165# CHECK: {nf} rolb %cl, 291(%r8,%rax,4), %bl 166# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00] 167 {nf} rolb %cl, 291(%r8,%rax,4), %bl 168# CHECK: {evex} rolw %cl, 291(%r8,%rax,4) 169# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 170 {evex} rolw %cl, 291(%r8,%rax,4) 171# CHECK: {nf} rolw %cl, 291(%r8,%rax,4) 172# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 173 {nf} rolw %cl, 291(%r8,%rax,4) 174# CHECK: rolw %cl, 291(%r8,%rax,4), %dx 175# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 176 rolw %cl, 291(%r8,%rax,4), %dx 177# CHECK: {nf} rolw %cl, 291(%r8,%rax,4), %dx 178# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 179 {nf} rolw %cl, 291(%r8,%rax,4), %dx 180# CHECK: {evex} roll %cl, 291(%r8,%rax,4) 181# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 182 {evex} roll %cl, 291(%r8,%rax,4) 183# CHECK: {nf} roll %cl, 291(%r8,%rax,4) 184# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 185 {nf} roll %cl, 291(%r8,%rax,4) 186# CHECK: roll %cl, 291(%r8,%rax,4), %ecx 187# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 188 roll %cl, 291(%r8,%rax,4), %ecx 189# CHECK: {nf} roll %cl, 291(%r8,%rax,4), %ecx 190# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 191 {nf} roll %cl, 291(%r8,%rax,4), %ecx 192# CHECK: {evex} rolq %cl, 291(%r8,%rax,4) 193# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 194 {evex} rolq %cl, 291(%r8,%rax,4) 195# CHECK: {nf} rolq %cl, 291(%r8,%rax,4) 196# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 197 {nf} rolq %cl, 291(%r8,%rax,4) 198# CHECK: rolq %cl, 291(%r8,%rax,4), %r9 199# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 200 rolq %cl, 291(%r8,%rax,4), %r9 201# CHECK: {nf} rolq %cl, 291(%r8,%rax,4), %r9 202# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00] 203 {nf} rolq %cl, 291(%r8,%rax,4), %r9 204# CHECK: {evex} rolw %dx 205# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd1,0xc2] 206 {evex} rolw %dx 207# CHECK: {nf} rolw %dx 208# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd1,0xc2] 209 {nf} rolw %dx 210# CHECK: rolw %dx, %dx 211# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd1,0xc2] 212 rolw %dx, %dx 213# CHECK: {nf} rolw %dx, %dx 214# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd1,0xc2] 215 {nf} rolw %dx, %dx 216# CHECK: {evex} roll %ecx 217# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd1,0xc1] 218 {evex} roll %ecx 219# CHECK: {nf} roll %ecx 220# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd1,0xc1] 221 {nf} roll %ecx 222# CHECK: roll %ecx, %ecx 223# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd1,0xc1] 224 roll %ecx, %ecx 225# CHECK: {nf} roll %ecx, %ecx 226# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd1,0xc1] 227 {nf} roll %ecx, %ecx 228# CHECK: {evex} rolq %r9 229# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0xc1] 230 {evex} rolq %r9 231# CHECK: {nf} rolq %r9 232# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0xc1] 233 {nf} rolq %r9 234# CHECK: rolq %r9, %r9 235# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xc1] 236 rolq %r9, %r9 237# CHECK: {nf} rolq %r9, %r9 238# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xc1] 239 {nf} rolq %r9, %r9 240# CHECK: {evex} rolb 291(%r8,%rax,4) 241# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd0,0x84,0x80,0x23,0x01,0x00,0x00] 242 {evex} rolb 291(%r8,%rax,4) 243# CHECK: {nf} rolb 291(%r8,%rax,4) 244# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00] 245 {nf} rolb 291(%r8,%rax,4) 246# CHECK: rolb 291(%r8,%rax,4), %bl 247# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd0,0x84,0x80,0x23,0x01,0x00,0x00] 248 rolb 291(%r8,%rax,4), %bl 249# CHECK: {nf} rolb 291(%r8,%rax,4), %bl 250# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00] 251 {nf} rolb 291(%r8,%rax,4), %bl 252# CHECK: {evex} rolw 291(%r8,%rax,4) 253# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 254 {evex} rolw 291(%r8,%rax,4) 255# CHECK: {nf} rolw 291(%r8,%rax,4) 256# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 257 {nf} rolw 291(%r8,%rax,4) 258# CHECK: rolw 291(%r8,%rax,4), %dx 259# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 260 rolw 291(%r8,%rax,4), %dx 261# CHECK: {nf} rolw 291(%r8,%rax,4), %dx 262# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 263 {nf} rolw 291(%r8,%rax,4), %dx 264# CHECK: {evex} roll 291(%r8,%rax,4) 265# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 266 {evex} roll 291(%r8,%rax,4) 267# CHECK: {nf} roll 291(%r8,%rax,4) 268# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 269 {nf} roll 291(%r8,%rax,4) 270# CHECK: roll 291(%r8,%rax,4), %ecx 271# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 272 roll 291(%r8,%rax,4), %ecx 273# CHECK: {nf} roll 291(%r8,%rax,4), %ecx 274# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 275 {nf} roll 291(%r8,%rax,4), %ecx 276# CHECK: {evex} rolq 291(%r8,%rax,4) 277# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 278 {evex} rolq 291(%r8,%rax,4) 279# CHECK: {nf} rolq 291(%r8,%rax,4) 280# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 281 {nf} rolq 291(%r8,%rax,4) 282# CHECK: rolq 291(%r8,%rax,4), %r9 283# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 284 rolq 291(%r8,%rax,4), %r9 285# CHECK: {nf} rolq 291(%r8,%rax,4), %r9 286# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00] 287 {nf} rolq 291(%r8,%rax,4), %r9 288