198 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-64: error:5# ERROR-NOT: error:6# CHECK: {evex} imulw $123, %dx, %dx7# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0x6b,0xd2,0x7b]8 {evex} imulw $123, %dx, %dx9# CHECK: {nf} imulw $123, %dx, %dx10# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0x6b,0xd2,0x7b]11 {nf} imulw $123, %dx, %dx12# CHECK: {evex} imull $123, %ecx, %ecx13# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0x6b,0xc9,0x7b]14 {evex} imull $123, %ecx, %ecx15# CHECK: {nf} imull $123, %ecx, %ecx16# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0x6b,0xc9,0x7b]17 {nf} imull $123, %ecx, %ecx18# CHECK: {evex} imulq $123, %r9, %r919# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x6b,0xc9,0x7b]20 {evex} imulq $123, %r9, %r921# CHECK: {nf} imulq $123, %r9, %r922# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x6b,0xc9,0x7b]23 {nf} imulq $123, %r9, %r924# CHECK: {evex} imulw $123, 291(%r8,%rax,4), %dx25# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0x6b,0x94,0x80,0x23,0x01,0x00,0x00,0x7b]26 {evex} imulw $123, 291(%r8,%rax,4), %dx27# CHECK: {nf} imulw $123, 291(%r8,%rax,4), %dx28# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0x6b,0x94,0x80,0x23,0x01,0x00,0x00,0x7b]29 {nf} imulw $123, 291(%r8,%rax,4), %dx30# CHECK: {evex} imull $123, 291(%r8,%rax,4), %ecx31# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]32 {evex} imull $123, 291(%r8,%rax,4), %ecx33# CHECK: {nf} imull $123, 291(%r8,%rax,4), %ecx34# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]35 {nf} imull $123, 291(%r8,%rax,4), %ecx36# CHECK: {evex} imulq $123, 291(%r8,%rax,4), %r937# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]38 {evex} imulq $123, 291(%r8,%rax,4), %r939# CHECK: {nf} imulq $123, 291(%r8,%rax,4), %r940# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]41 {nf} imulq $123, 291(%r8,%rax,4), %r942# CHECK: {evex} imulw $1234, %dx, %dx43# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0x69,0xd2,0xd2,0x04]44 {evex} imulw $1234, %dx, %dx45# CHECK: {nf} imulw $1234, %dx, %dx46# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0x69,0xd2,0xd2,0x04]47 {nf} imulw $1234, %dx, %dx48# CHECK: {evex} imulw $1234, 291(%r8,%rax,4), %dx49# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0x69,0x94,0x80,0x23,0x01,0x00,0x00,0xd2,0x04]50 {evex} imulw $1234, 291(%r8,%rax,4), %dx51# CHECK: {nf} imulw $1234, 291(%r8,%rax,4), %dx52# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0x69,0x94,0x80,0x23,0x01,0x00,0x00,0xd2,0x04]53 {nf} imulw $1234, 291(%r8,%rax,4), %dx54# CHECK: {evex} imull $123456, %ecx, %ecx55# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0x69,0xc9,0x40,0xe2,0x01,0x00]56 {evex} imull $123456, %ecx, %ecx57# CHECK: {nf} imull $123456, %ecx, %ecx58# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0x69,0xc9,0x40,0xe2,0x01,0x00]59 {nf} imull $123456, %ecx, %ecx60# CHECK: {evex} imulq $123456, %r9, %r961# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x69,0xc9,0x40,0xe2,0x01,0x00]62 {evex} imulq $123456, %r9, %r963# CHECK: {nf} imulq $123456, %r9, %r964# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x69,0xc9,0x40,0xe2,0x01,0x00]65 {nf} imulq $123456, %r9, %r966# CHECK: {evex} imull $123456, 291(%r8,%rax,4), %ecx67# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]68 {evex} imull $123456, 291(%r8,%rax,4), %ecx69# CHECK: {nf} imull $123456, 291(%r8,%rax,4), %ecx70# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]71 {nf} imull $123456, 291(%r8,%rax,4), %ecx72# CHECK: {evex} imulq $123456, 291(%r8,%rax,4), %r973# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]74 {evex} imulq $123456, 291(%r8,%rax,4), %r975# CHECK: {nf} imulq $123456, 291(%r8,%rax,4), %r976# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]77 {nf} imulq $123456, 291(%r8,%rax,4), %r978# CHECK: {evex} imulb %bl79# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf6,0xeb]80 {evex} imulb %bl81# CHECK: {nf} imulb %bl82# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xf6,0xeb]83 {nf} imulb %bl84# CHECK: {evex} imulw %dx85# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xf7,0xea]86 {evex} imulw %dx87# CHECK: {nf} imulw %dx88# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xf7,0xea]89 {nf} imulw %dx90# CHECK: {evex} imulw %dx, %dx91# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xaf,0xd2]92 {evex} imulw %dx, %dx93# CHECK: {nf} imulw %dx, %dx94# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xaf,0xd2]95 {nf} imulw %dx, %dx96# CHECK: imulw %dx, %dx, %dx97# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xaf,0xd2]98 imulw %dx, %dx, %dx99# CHECK: {nf} imulw %dx, %dx, %dx100# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xaf,0xd2]101 {nf} imulw %dx, %dx, %dx102# CHECK: {evex} imull %ecx103# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf7,0xe9]104 {evex} imull %ecx105# CHECK: {nf} imull %ecx106# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xf7,0xe9]107 {nf} imull %ecx108# CHECK: {evex} imull %ecx, %ecx109# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xaf,0xc9]110 {evex} imull %ecx, %ecx111# CHECK: {nf} imull %ecx, %ecx112# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xaf,0xc9]113 {nf} imull %ecx, %ecx114# CHECK: imull %ecx, %ecx, %ecx115# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xaf,0xc9]116 imull %ecx, %ecx, %ecx117# CHECK: {nf} imull %ecx, %ecx, %ecx118# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xaf,0xc9]119 {nf} imull %ecx, %ecx, %ecx120# CHECK: {evex} imulq %r9121# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xf7,0xe9]122 {evex} imulq %r9123# CHECK: {nf} imulq %r9124# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xf7,0xe9]125 {nf} imulq %r9126# CHECK: {evex} imulq %r9, %r9127# CHECK: encoding: [0x62,0x54,0xfc,0x08,0xaf,0xc9]128 {evex} imulq %r9, %r9129# CHECK: {nf} imulq %r9, %r9130# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0xaf,0xc9]131 {nf} imulq %r9, %r9132# CHECK: imulq %r9, %r9, %r9133# CHECK: encoding: [0x62,0x54,0xb4,0x18,0xaf,0xc9]134 imulq %r9, %r9, %r9135# CHECK: {nf} imulq %r9, %r9, %r9136# CHECK: encoding: [0x62,0x54,0xb4,0x1c,0xaf,0xc9]137 {nf} imulq %r9, %r9, %r9138# CHECK: {evex} imulb 291(%r8,%rax,4)139# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xf6,0xac,0x80,0x23,0x01,0x00,0x00]140 {evex} imulb 291(%r8,%rax,4)141# CHECK: {nf} imulb 291(%r8,%rax,4)142# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xf6,0xac,0x80,0x23,0x01,0x00,0x00]143 {nf} imulb 291(%r8,%rax,4)144# CHECK: {evex} imulw 291(%r8,%rax,4)145# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]146 {evex} imulw 291(%r8,%rax,4)147# CHECK: {nf} imulw 291(%r8,%rax,4)148# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]149 {nf} imulw 291(%r8,%rax,4)150# CHECK: {evex} imulw 291(%r8,%rax,4), %dx151# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]152 {evex} imulw 291(%r8,%rax,4), %dx153# CHECK: {nf} imulw 291(%r8,%rax,4), %dx154# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]155 {nf} imulw 291(%r8,%rax,4), %dx156# CHECK: imulw 291(%r8,%rax,4), %dx, %dx157# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]158 imulw 291(%r8,%rax,4), %dx, %dx159# CHECK: {nf} imulw 291(%r8,%rax,4), %dx, %dx160# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]161 {nf} imulw 291(%r8,%rax,4), %dx, %dx162# CHECK: {evex} imull 291(%r8,%rax,4)163# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]164 {evex} imull 291(%r8,%rax,4)165# CHECK: {nf} imull 291(%r8,%rax,4)166# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]167 {nf} imull 291(%r8,%rax,4)168# CHECK: {evex} imull 291(%r8,%rax,4), %ecx169# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]170 {evex} imull 291(%r8,%rax,4), %ecx171# CHECK: {nf} imull 291(%r8,%rax,4), %ecx172# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]173 {nf} imull 291(%r8,%rax,4), %ecx174# CHECK: imull 291(%r8,%rax,4), %ecx, %ecx175# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]176 imull 291(%r8,%rax,4), %ecx, %ecx177# CHECK: {nf} imull 291(%r8,%rax,4), %ecx, %ecx178# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]179 {nf} imull 291(%r8,%rax,4), %ecx, %ecx180# CHECK: {evex} imulq 291(%r8,%rax,4)181# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]182 {evex} imulq 291(%r8,%rax,4)183# CHECK: {nf} imulq 291(%r8,%rax,4)184# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]185 {nf} imulq 291(%r8,%rax,4)186# CHECK: {evex} imulq 291(%r8,%rax,4), %r9187# CHECK: encoding: [0x62,0x54,0xfc,0x08,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]188 {evex} imulq 291(%r8,%rax,4), %r9189# CHECK: {nf} imulq 291(%r8,%rax,4), %r9190# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]191 {nf} imulq 291(%r8,%rax,4), %r9192# CHECK: imulq 291(%r8,%rax,4), %r9, %r9193# CHECK: encoding: [0x62,0x54,0xb4,0x18,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]194 imulq 291(%r8,%rax,4), %r9, %r9195# CHECK: {nf} imulq 291(%r8,%rax,4), %r9, %r9196# CHECK: encoding: [0x62,0x54,0xb4,0x1c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]197 {nf} imulq 291(%r8,%rax,4), %r9, %r9198