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