288 lines · plain
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s2# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR3 4# ERROR-COUNT-94: error:5# ERROR-NOT: error:6# CHECK: {evex} shrb $123, %bl7# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc0,0xeb,0x7b]8 {evex} shrb $123, %bl9# CHECK: {nf} shrb $123, %bl10# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc0,0xeb,0x7b]11 {nf} shrb $123, %bl12# CHECK: shrb $123, %bl, %bl13# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xc0,0xeb,0x7b]14 shrb $123, %bl, %bl15# CHECK: {nf} shrb $123, %bl, %bl16# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xc0,0xeb,0x7b]17 {nf} shrb $123, %bl, %bl18# CHECK: {evex} shrw $123, %dx19# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xc1,0xea,0x7b]20 {evex} shrw $123, %dx21# CHECK: {nf} shrw $123, %dx22# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xc1,0xea,0x7b]23 {nf} shrw $123, %dx24# CHECK: shrw $123, %dx, %dx25# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xc1,0xea,0x7b]26 shrw $123, %dx, %dx27# CHECK: {nf} shrw $123, %dx, %dx28# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xc1,0xea,0x7b]29 {nf} shrw $123, %dx, %dx30# CHECK: {evex} shrl $123, %ecx31# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc1,0xe9,0x7b]32 {evex} shrl $123, %ecx33# CHECK: {nf} shrl $123, %ecx34# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc1,0xe9,0x7b]35 {nf} shrl $123, %ecx36# CHECK: shrl $123, %ecx, %ecx37# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xc1,0xe9,0x7b]38 shrl $123, %ecx, %ecx39# CHECK: {nf} shrl $123, %ecx, %ecx40# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xc1,0xe9,0x7b]41 {nf} shrl $123, %ecx, %ecx42# CHECK: {evex} shrq $123, %r943# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0xe9,0x7b]44 {evex} shrq $123, %r945# CHECK: {nf} shrq $123, %r946# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0xe9,0x7b]47 {nf} shrq $123, %r948# CHECK: shrq $123, %r9, %r949# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xe9,0x7b]50 shrq $123, %r9, %r951# CHECK: {nf} shrq $123, %r9, %r952# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xe9,0x7b]53 {nf} shrq $123, %r9, %r954# 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), %bl61# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xc0,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]62 shrb $123, 291(%r8,%rax,4), %bl63# CHECK: {nf} shrb $123, 291(%r8,%rax,4), %bl64# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xc0,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]65 {nf} shrb $123, 291(%r8,%rax,4), %bl66# 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), %dx73# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]74 shrw $123, 291(%r8,%rax,4), %dx75# CHECK: {nf} shrw $123, 291(%r8,%rax,4), %dx76# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]77 {nf} shrw $123, 291(%r8,%rax,4), %dx78# 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), %ecx85# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]86 shrl $123, 291(%r8,%rax,4), %ecx87# CHECK: {nf} shrl $123, 291(%r8,%rax,4), %ecx88# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]89 {nf} shrl $123, 291(%r8,%rax,4), %ecx90# 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), %r997# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]98 shrq $123, 291(%r8,%rax,4), %r999# CHECK: {nf} shrq $123, 291(%r8,%rax,4), %r9100# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xac,0x80,0x23,0x01,0x00,0x00,0x7b]101 {nf} shrq $123, 291(%r8,%rax,4), %r9102# CHECK: {evex} shrb %bl103# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd0,0xeb]104 {evex} shrb %bl105# CHECK: {nf} shrb %bl106# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd0,0xeb]107 {nf} shrb %bl108# CHECK: {evex} shrb %cl, %bl109# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd2,0xeb]110 {evex} shrb %cl, %bl111# CHECK: {nf} shrb %cl, %bl112# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd2,0xeb]113 {nf} shrb %cl, %bl114# CHECK: shrb %cl, %bl, %bl115# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xd2,0xeb]116 shrb %cl, %bl, %bl117# CHECK: {nf} shrb %cl, %bl, %bl118# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xd2,0xeb]119 {nf} shrb %cl, %bl, %bl120# CHECK: {evex} shrw %cl, %dx121# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd3,0xea]122 {evex} shrw %cl, %dx123# CHECK: {nf} shrw %cl, %dx124# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd3,0xea]125 {nf} shrw %cl, %dx126# CHECK: shrw %cl, %dx, %dx127# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd3,0xea]128 shrw %cl, %dx, %dx129# CHECK: {nf} shrw %cl, %dx, %dx130# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd3,0xea]131 {nf} shrw %cl, %dx, %dx132# CHECK: {evex} shrl %cl, %ecx133# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd3,0xe9]134 {evex} shrl %cl, %ecx135# CHECK: {nf} shrl %cl, %ecx136# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd3,0xe9]137 {nf} shrl %cl, %ecx138# CHECK: shrl %cl, %ecx, %ecx139# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd3,0xe9]140 shrl %cl, %ecx, %ecx141# CHECK: {nf} shrl %cl, %ecx, %ecx142# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd3,0xe9]143 {nf} shrl %cl, %ecx, %ecx144# CHECK: {evex} shrq %cl, %r9145# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0xe9]146 {evex} shrq %cl, %r9147# CHECK: {nf} shrq %cl, %r9148# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0xe9]149 {nf} shrq %cl, %r9150# CHECK: shrq %cl, %r9, %r9151# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xe9]152 shrq %cl, %r9, %r9153# CHECK: {nf} shrq %cl, %r9, %r9154# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xe9]155 {nf} shrq %cl, %r9, %r9156# 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), %bl163# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd2,0xac,0x80,0x23,0x01,0x00,0x00]164 shrb %cl, 291(%r8,%rax,4), %bl165# CHECK: {nf} shrb %cl, 291(%r8,%rax,4), %bl166# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd2,0xac,0x80,0x23,0x01,0x00,0x00]167 {nf} shrb %cl, 291(%r8,%rax,4), %bl168# 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), %dx175# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]176 shrw %cl, 291(%r8,%rax,4), %dx177# CHECK: {nf} shrw %cl, 291(%r8,%rax,4), %dx178# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]179 {nf} shrw %cl, 291(%r8,%rax,4), %dx180# 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), %ecx187# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]188 shrl %cl, 291(%r8,%rax,4), %ecx189# CHECK: {nf} shrl %cl, 291(%r8,%rax,4), %ecx190# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]191 {nf} shrl %cl, 291(%r8,%rax,4), %ecx192# 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), %r9199# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]200 shrq %cl, 291(%r8,%rax,4), %r9201# CHECK: {nf} shrq %cl, 291(%r8,%rax,4), %r9202# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xac,0x80,0x23,0x01,0x00,0x00]203 {nf} shrq %cl, 291(%r8,%rax,4), %r9204# CHECK: {evex} shrw %dx205# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd1,0xea]206 {evex} shrw %dx207# CHECK: {nf} shrw %dx208# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd1,0xea]209 {nf} shrw %dx210# CHECK: shrw %dx, %dx211# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd1,0xea]212 shrw %dx, %dx213# CHECK: {nf} shrw %dx, %dx214# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd1,0xea]215 {nf} shrw %dx, %dx216# CHECK: {evex} shrl %ecx217# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd1,0xe9]218 {evex} shrl %ecx219# CHECK: {nf} shrl %ecx220# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd1,0xe9]221 {nf} shrl %ecx222# CHECK: shrl %ecx, %ecx223# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd1,0xe9]224 shrl %ecx, %ecx225# CHECK: {nf} shrl %ecx, %ecx226# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd1,0xe9]227 {nf} shrl %ecx, %ecx228# CHECK: {evex} shrq %r9229# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0xe9]230 {evex} shrq %r9231# CHECK: {nf} shrq %r9232# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0xe9]233 {nf} shrq %r9234# CHECK: shrq %r9, %r9235# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xe9]236 shrq %r9, %r9237# CHECK: {nf} shrq %r9, %r9238# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xe9]239 {nf} shrq %r9, %r9240# 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), %bl247# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd0,0xac,0x80,0x23,0x01,0x00,0x00]248 shrb 291(%r8,%rax,4), %bl249# CHECK: {nf} shrb 291(%r8,%rax,4), %bl250# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd0,0xac,0x80,0x23,0x01,0x00,0x00]251 {nf} shrb 291(%r8,%rax,4), %bl252# 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), %dx259# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]260 shrw 291(%r8,%rax,4), %dx261# CHECK: {nf} shrw 291(%r8,%rax,4), %dx262# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]263 {nf} shrw 291(%r8,%rax,4), %dx264# 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), %ecx271# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]272 shrl 291(%r8,%rax,4), %ecx273# CHECK: {nf} shrl 291(%r8,%rax,4), %ecx274# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]275 {nf} shrl 291(%r8,%rax,4), %ecx276# 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), %r9283# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]284 shrq 291(%r8,%rax,4), %r9285# CHECK: {nf} shrq 291(%r8,%rax,4), %r9286# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xac,0x80,0x23,0x01,0x00,0x00]287 {nf} shrq 291(%r8,%rax,4), %r9288