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