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