# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s
# CHECK: {evex} imul dx, dx, 123
# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0x6b,0xd2,0x7b]
{evex} imul dx, dx, 123
# CHECK: {nf} imul dx, dx, 123
# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0x6b,0xd2,0x7b]
{nf} imul dx, dx, 123
# CHECK: {evex} imul ecx, ecx, 123
# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0x6b,0xc9,0x7b]
{evex} imul ecx, ecx, 123
# CHECK: {nf} imul ecx, ecx, 123
# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0x6b,0xc9,0x7b]
{nf} imul ecx, ecx, 123
# CHECK: {evex} imul r9, r9, 123
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x6b,0xc9,0x7b]
{evex} imul r9, r9, 123
# CHECK: {nf} imul r9, r9, 123
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x6b,0xc9,0x7b]
{nf} imul r9, r9, 123
# CHECK: {evex} imul dx, word ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0x6b,0x94,0x80,0x23,0x01,0x00,0x00,0x7b]
{evex} imul dx, word ptr [r8 + 4*rax + 291], 123
# CHECK: {nf} imul dx, word ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0x6b,0x94,0x80,0x23,0x01,0x00,0x00,0x7b]
{nf} imul dx, word ptr [r8 + 4*rax + 291], 123
# CHECK: {evex} imul ecx, dword ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]
{evex} imul ecx, dword ptr [r8 + 4*rax + 291], 123
# CHECK: {nf} imul ecx, dword ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]
{nf} imul ecx, dword ptr [r8 + 4*rax + 291], 123
# CHECK: {evex} imul r9, qword ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]
{evex} imul r9, qword ptr [r8 + 4*rax + 291], 123
# CHECK: {nf} imul r9, qword ptr [r8 + 4*rax + 291], 123
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x6b,0x8c,0x80,0x23,0x01,0x00,0x00,0x7b]
{nf} imul r9, qword ptr [r8 + 4*rax + 291], 123
# CHECK: {evex} imul dx, dx, 1234
# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0x69,0xd2,0xd2,0x04]
{evex} imul dx, dx, 1234
# CHECK: {nf} imul dx, dx, 1234
# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0x69,0xd2,0xd2,0x04]
{nf} imul dx, dx, 1234
# CHECK: {evex} imul dx, word ptr [r8 + 4*rax + 291], 1234
# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0x69,0x94,0x80,0x23,0x01,0x00,0x00,0xd2,0x04]
{evex} imul dx, word ptr [r8 + 4*rax + 291], 1234
# CHECK: {nf} imul dx, word ptr [r8 + 4*rax + 291], 1234
# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0x69,0x94,0x80,0x23,0x01,0x00,0x00,0xd2,0x04]
{nf} imul dx, word ptr [r8 + 4*rax + 291], 1234
# CHECK: {evex} imul ecx, ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0x69,0xc9,0x40,0xe2,0x01,0x00]
{evex} imul ecx, ecx, 123456
# CHECK: {nf} imul ecx, ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0x69,0xc9,0x40,0xe2,0x01,0x00]
{nf} imul ecx, ecx, 123456
# CHECK: {evex} imul r9, r9, 123456
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x69,0xc9,0x40,0xe2,0x01,0x00]
{evex} imul r9, r9, 123456
# CHECK: {nf} imul r9, r9, 123456
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x69,0xc9,0x40,0xe2,0x01,0x00]
{nf} imul r9, r9, 123456
# CHECK: {evex} imul ecx, dword ptr [r8 + 4*rax + 291], 123456
# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]
{evex} imul ecx, dword ptr [r8 + 4*rax + 291], 123456
# CHECK: {nf} imul ecx, dword ptr [r8 + 4*rax + 291], 123456
# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]
{nf} imul ecx, dword ptr [r8 + 4*rax + 291], 123456
# CHECK: {evex} imul r9, qword ptr [r8 + 4*rax + 291], 123456
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]
{evex} imul r9, qword ptr [r8 + 4*rax + 291], 123456
# CHECK: {nf} imul r9, qword ptr [r8 + 4*rax + 291], 123456
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0x69,0x8c,0x80,0x23,0x01,0x00,0x00,0x40,0xe2,0x01,0x00]
{nf} imul r9, qword ptr [r8 + 4*rax + 291], 123456
# CHECK: {evex} imul bl
# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf6,0xeb]
{evex} imul bl
# CHECK: {nf} imul bl
# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xf6,0xeb]
{nf} imul bl
# CHECK: {evex} imul dx
# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xf7,0xea]
{evex} imul dx
# CHECK: {nf} imul dx
# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xf7,0xea]
{nf} imul dx
# CHECK: {evex} imul dx, dx
# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xaf,0xd2]
{evex} imul dx, dx
# CHECK: {nf} imul dx, dx
# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xaf,0xd2]
{nf} imul dx, dx
# CHECK: imul dx, dx, dx
# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xaf,0xd2]
imul dx, dx, dx
# CHECK: {nf} imul dx, dx, dx
# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xaf,0xd2]
{nf} imul dx, dx, dx
# CHECK: {evex} imul ecx
# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xf7,0xe9]
{evex} imul ecx
# CHECK: {nf} imul ecx
# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xf7,0xe9]
{nf} imul ecx
# CHECK: {evex} imul ecx, ecx
# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xaf,0xc9]
{evex} imul ecx, ecx
# CHECK: {nf} imul ecx, ecx
# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xaf,0xc9]
{nf} imul ecx, ecx
# CHECK: imul ecx, ecx, ecx
# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xaf,0xc9]
imul ecx, ecx, ecx
# CHECK: {nf} imul ecx, ecx, ecx
# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xaf,0xc9]
{nf} imul ecx, ecx, ecx
# CHECK: {evex} imul r9
# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xf7,0xe9]
{evex} imul r9
# CHECK: {nf} imul r9
# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xf7,0xe9]
{nf} imul r9
# CHECK: {evex} imul r9, r9
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0xaf,0xc9]
{evex} imul r9, r9
# CHECK: {nf} imul r9, r9
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0xaf,0xc9]
{nf} imul r9, r9
# CHECK: imul r9, r9, r9
# CHECK: encoding: [0x62,0x54,0xb4,0x18,0xaf,0xc9]
imul r9, r9, r9
# CHECK: {nf} imul r9, r9, r9
# CHECK: encoding: [0x62,0x54,0xb4,0x1c,0xaf,0xc9]
{nf} imul r9, r9, r9
# CHECK: {evex} imul byte ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xf6,0xac,0x80,0x23,0x01,0x00,0x00]
{evex} imul byte ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul byte ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xf6,0xac,0x80,0x23,0x01,0x00,0x00]
{nf} imul byte ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{evex} imul word ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{nf} imul word ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul dx, word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]
{evex} imul dx, word ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul dx, word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]
{nf} imul dx, word ptr [r8 + 4*rax + 291]
# CHECK: imul dx, dx, word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]
imul dx, dx, word ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul dx, dx, word ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xaf,0x94,0x80,0x23,0x01,0x00,0x00]
{nf} imul dx, dx, word ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{evex} imul dword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{nf} imul dword ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{evex} imul ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{nf} imul ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: imul ecx, ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
imul ecx, ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul ecx, ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{nf} imul ecx, ecx, dword ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{evex} imul qword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xf7,0xac,0x80,0x23,0x01,0x00,0x00]
{nf} imul qword ptr [r8 + 4*rax + 291]
# CHECK: {evex} imul r9, qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0x54,0xfc,0x08,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{evex} imul r9, qword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul r9, qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0x54,0xfc,0x0c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{nf} imul r9, qword ptr [r8 + 4*rax + 291]
# CHECK: imul r9, r9, qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0x54,0xb4,0x18,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
imul r9, r9, qword ptr [r8 + 4*rax + 291]
# CHECK: {nf} imul r9, r9, qword ptr [r8 + 4*rax + 291]
# CHECK: encoding: [0x62,0x54,0xb4,0x1c,0xaf,0x8c,0x80,0x23,0x01,0x00,0x00]
{nf} imul r9, r9, qword ptr [r8 + 4*rax + 291]