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