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