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} sarb $123, %bl7# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc0,0xfb,0x7b]8 {evex} sarb $123, %bl9# CHECK: {nf} sarb $123, %bl10# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc0,0xfb,0x7b]11 {nf} sarb $123, %bl12# CHECK: sarb $123, %bl, %bl13# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xc0,0xfb,0x7b]14 sarb $123, %bl, %bl15# CHECK: {nf} sarb $123, %bl, %bl16# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xc0,0xfb,0x7b]17 {nf} sarb $123, %bl, %bl18# CHECK: {evex} sarw $123, %dx19# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xc1,0xfa,0x7b]20 {evex} sarw $123, %dx21# CHECK: {nf} sarw $123, %dx22# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xc1,0xfa,0x7b]23 {nf} sarw $123, %dx24# CHECK: sarw $123, %dx, %dx25# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xc1,0xfa,0x7b]26 sarw $123, %dx, %dx27# CHECK: {nf} sarw $123, %dx, %dx28# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xc1,0xfa,0x7b]29 {nf} sarw $123, %dx, %dx30# CHECK: {evex} sarl $123, %ecx31# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc1,0xf9,0x7b]32 {evex} sarl $123, %ecx33# CHECK: {nf} sarl $123, %ecx34# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc1,0xf9,0x7b]35 {nf} sarl $123, %ecx36# CHECK: sarl $123, %ecx, %ecx37# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xc1,0xf9,0x7b]38 sarl $123, %ecx, %ecx39# CHECK: {nf} sarl $123, %ecx, %ecx40# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xc1,0xf9,0x7b]41 {nf} sarl $123, %ecx, %ecx42# CHECK: {evex} sarq $123, %r943# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0xf9,0x7b]44 {evex} sarq $123, %r945# CHECK: {nf} sarq $123, %r946# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0xf9,0x7b]47 {nf} sarq $123, %r948# CHECK: sarq $123, %r9, %r949# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xf9,0x7b]50 sarq $123, %r9, %r951# CHECK: {nf} sarq $123, %r9, %r952# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xf9,0x7b]53 {nf} sarq $123, %r9, %r954# CHECK: {evex} sarb $123, 291(%r8,%rax,4)55# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc0,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]56 {evex} sarb $123, 291(%r8,%rax,4)57# CHECK: {nf} sarb $123, 291(%r8,%rax,4)58# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc0,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]59 {nf} sarb $123, 291(%r8,%rax,4)60# CHECK: sarb $123, 291(%r8,%rax,4), %bl61# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xc0,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]62 sarb $123, 291(%r8,%rax,4), %bl63# CHECK: {nf} sarb $123, 291(%r8,%rax,4), %bl64# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xc0,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]65 {nf} sarb $123, 291(%r8,%rax,4), %bl66# CHECK: {evex} sarw $123, 291(%r8,%rax,4)67# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]68 {evex} sarw $123, 291(%r8,%rax,4)69# CHECK: {nf} sarw $123, 291(%r8,%rax,4)70# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]71 {nf} sarw $123, 291(%r8,%rax,4)72# CHECK: sarw $123, 291(%r8,%rax,4), %dx73# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]74 sarw $123, 291(%r8,%rax,4), %dx75# CHECK: {nf} sarw $123, 291(%r8,%rax,4), %dx76# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]77 {nf} sarw $123, 291(%r8,%rax,4), %dx78# CHECK: {evex} sarl $123, 291(%r8,%rax,4)79# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]80 {evex} sarl $123, 291(%r8,%rax,4)81# CHECK: {nf} sarl $123, 291(%r8,%rax,4)82# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]83 {nf} sarl $123, 291(%r8,%rax,4)84# CHECK: sarl $123, 291(%r8,%rax,4), %ecx85# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]86 sarl $123, 291(%r8,%rax,4), %ecx87# CHECK: {nf} sarl $123, 291(%r8,%rax,4), %ecx88# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]89 {nf} sarl $123, 291(%r8,%rax,4), %ecx90# CHECK: {evex} sarq $123, 291(%r8,%rax,4)91# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]92 {evex} sarq $123, 291(%r8,%rax,4)93# CHECK: {nf} sarq $123, 291(%r8,%rax,4)94# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]95 {nf} sarq $123, 291(%r8,%rax,4)96# CHECK: sarq $123, 291(%r8,%rax,4), %r997# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]98 sarq $123, 291(%r8,%rax,4), %r999# CHECK: {nf} sarq $123, 291(%r8,%rax,4), %r9100# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xbc,0x80,0x23,0x01,0x00,0x00,0x7b]101 {nf} sarq $123, 291(%r8,%rax,4), %r9102# CHECK: {evex} sarb %bl103# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd0,0xfb]104 {evex} sarb %bl105# CHECK: {nf} sarb %bl106# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd0,0xfb]107 {nf} sarb %bl108# CHECK: {evex} sarb %cl, %bl109# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd2,0xfb]110 {evex} sarb %cl, %bl111# CHECK: {nf} sarb %cl, %bl112# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd2,0xfb]113 {nf} sarb %cl, %bl114# CHECK: sarb %cl, %bl, %bl115# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xd2,0xfb]116 sarb %cl, %bl, %bl117# CHECK: {nf} sarb %cl, %bl, %bl118# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xd2,0xfb]119 {nf} sarb %cl, %bl, %bl120# CHECK: {evex} sarw %cl, %dx121# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd3,0xfa]122 {evex} sarw %cl, %dx123# CHECK: {nf} sarw %cl, %dx124# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd3,0xfa]125 {nf} sarw %cl, %dx126# CHECK: sarw %cl, %dx, %dx127# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd3,0xfa]128 sarw %cl, %dx, %dx129# CHECK: {nf} sarw %cl, %dx, %dx130# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd3,0xfa]131 {nf} sarw %cl, %dx, %dx132# CHECK: {evex} sarl %cl, %ecx133# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd3,0xf9]134 {evex} sarl %cl, %ecx135# CHECK: {nf} sarl %cl, %ecx136# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd3,0xf9]137 {nf} sarl %cl, %ecx138# CHECK: sarl %cl, %ecx, %ecx139# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd3,0xf9]140 sarl %cl, %ecx, %ecx141# CHECK: {nf} sarl %cl, %ecx, %ecx142# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd3,0xf9]143 {nf} sarl %cl, %ecx, %ecx144# CHECK: {evex} sarq %cl, %r9145# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0xf9]146 {evex} sarq %cl, %r9147# CHECK: {nf} sarq %cl, %r9148# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0xf9]149 {nf} sarq %cl, %r9150# CHECK: sarq %cl, %r9, %r9151# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xf9]152 sarq %cl, %r9, %r9153# CHECK: {nf} sarq %cl, %r9, %r9154# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xf9]155 {nf} sarq %cl, %r9, %r9156# CHECK: {evex} sarb %cl, 291(%r8,%rax,4)157# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd2,0xbc,0x80,0x23,0x01,0x00,0x00]158 {evex} sarb %cl, 291(%r8,%rax,4)159# CHECK: {nf} sarb %cl, 291(%r8,%rax,4)160# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd2,0xbc,0x80,0x23,0x01,0x00,0x00]161 {nf} sarb %cl, 291(%r8,%rax,4)162# CHECK: sarb %cl, 291(%r8,%rax,4), %bl163# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd2,0xbc,0x80,0x23,0x01,0x00,0x00]164 sarb %cl, 291(%r8,%rax,4), %bl165# CHECK: {nf} sarb %cl, 291(%r8,%rax,4), %bl166# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd2,0xbc,0x80,0x23,0x01,0x00,0x00]167 {nf} sarb %cl, 291(%r8,%rax,4), %bl168# CHECK: {evex} sarw %cl, 291(%r8,%rax,4)169# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]170 {evex} sarw %cl, 291(%r8,%rax,4)171# CHECK: {nf} sarw %cl, 291(%r8,%rax,4)172# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]173 {nf} sarw %cl, 291(%r8,%rax,4)174# CHECK: sarw %cl, 291(%r8,%rax,4), %dx175# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]176 sarw %cl, 291(%r8,%rax,4), %dx177# CHECK: {nf} sarw %cl, 291(%r8,%rax,4), %dx178# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]179 {nf} sarw %cl, 291(%r8,%rax,4), %dx180# CHECK: {evex} sarl %cl, 291(%r8,%rax,4)181# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]182 {evex} sarl %cl, 291(%r8,%rax,4)183# CHECK: {nf} sarl %cl, 291(%r8,%rax,4)184# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]185 {nf} sarl %cl, 291(%r8,%rax,4)186# CHECK: sarl %cl, 291(%r8,%rax,4), %ecx187# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]188 sarl %cl, 291(%r8,%rax,4), %ecx189# CHECK: {nf} sarl %cl, 291(%r8,%rax,4), %ecx190# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]191 {nf} sarl %cl, 291(%r8,%rax,4), %ecx192# CHECK: {evex} sarq %cl, 291(%r8,%rax,4)193# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]194 {evex} sarq %cl, 291(%r8,%rax,4)195# CHECK: {nf} sarq %cl, 291(%r8,%rax,4)196# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]197 {nf} sarq %cl, 291(%r8,%rax,4)198# CHECK: sarq %cl, 291(%r8,%rax,4), %r9199# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]200 sarq %cl, 291(%r8,%rax,4), %r9201# CHECK: {nf} sarq %cl, 291(%r8,%rax,4), %r9202# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xbc,0x80,0x23,0x01,0x00,0x00]203 {nf} sarq %cl, 291(%r8,%rax,4), %r9204# CHECK: {evex} sarw %dx205# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd1,0xfa]206 {evex} sarw %dx207# CHECK: {nf} sarw %dx208# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd1,0xfa]209 {nf} sarw %dx210# CHECK: sarw %dx, %dx211# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd1,0xfa]212 sarw %dx, %dx213# CHECK: {nf} sarw %dx, %dx214# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd1,0xfa]215 {nf} sarw %dx, %dx216# CHECK: {evex} sarl %ecx217# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd1,0xf9]218 {evex} sarl %ecx219# CHECK: {nf} sarl %ecx220# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd1,0xf9]221 {nf} sarl %ecx222# CHECK: sarl %ecx, %ecx223# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd1,0xf9]224 sarl %ecx, %ecx225# CHECK: {nf} sarl %ecx, %ecx226# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd1,0xf9]227 {nf} sarl %ecx, %ecx228# CHECK: {evex} sarq %r9229# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0xf9]230 {evex} sarq %r9231# CHECK: {nf} sarq %r9232# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0xf9]233 {nf} sarq %r9234# CHECK: sarq %r9, %r9235# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xf9]236 sarq %r9, %r9237# CHECK: {nf} sarq %r9, %r9238# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xf9]239 {nf} sarq %r9, %r9240# CHECK: {evex} sarb 291(%r8,%rax,4)241# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd0,0xbc,0x80,0x23,0x01,0x00,0x00]242 {evex} sarb 291(%r8,%rax,4)243# CHECK: {nf} sarb 291(%r8,%rax,4)244# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd0,0xbc,0x80,0x23,0x01,0x00,0x00]245 {nf} sarb 291(%r8,%rax,4)246# CHECK: sarb 291(%r8,%rax,4), %bl247# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd0,0xbc,0x80,0x23,0x01,0x00,0x00]248 sarb 291(%r8,%rax,4), %bl249# CHECK: {nf} sarb 291(%r8,%rax,4), %bl250# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd0,0xbc,0x80,0x23,0x01,0x00,0x00]251 {nf} sarb 291(%r8,%rax,4), %bl252# CHECK: {evex} sarw 291(%r8,%rax,4)253# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]254 {evex} sarw 291(%r8,%rax,4)255# CHECK: {nf} sarw 291(%r8,%rax,4)256# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]257 {nf} sarw 291(%r8,%rax,4)258# CHECK: sarw 291(%r8,%rax,4), %dx259# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]260 sarw 291(%r8,%rax,4), %dx261# CHECK: {nf} sarw 291(%r8,%rax,4), %dx262# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]263 {nf} sarw 291(%r8,%rax,4), %dx264# CHECK: {evex} sarl 291(%r8,%rax,4)265# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]266 {evex} sarl 291(%r8,%rax,4)267# CHECK: {nf} sarl 291(%r8,%rax,4)268# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]269 {nf} sarl 291(%r8,%rax,4)270# CHECK: sarl 291(%r8,%rax,4), %ecx271# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]272 sarl 291(%r8,%rax,4), %ecx273# CHECK: {nf} sarl 291(%r8,%rax,4), %ecx274# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]275 {nf} sarl 291(%r8,%rax,4), %ecx276# CHECK: {evex} sarq 291(%r8,%rax,4)277# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]278 {evex} sarq 291(%r8,%rax,4)279# CHECK: {nf} sarq 291(%r8,%rax,4)280# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]281 {nf} sarq 291(%r8,%rax,4)282# CHECK: sarq 291(%r8,%rax,4), %r9283# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]284 sarq 291(%r8,%rax,4), %r9285# CHECK: {nf} sarq 291(%r8,%rax,4), %r9286# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xbc,0x80,0x23,0x01,0x00,0x00]287 {nf} sarq 291(%r8,%rax,4), %r9288