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