# RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
## mulx
# CHECK: {evex} mulx r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x6f,0x08,0xf6,0xd1]
{evex} mulx r10d, edx, ecx
# CHECK: {evex} mulx r11, r15, r9
# CHECK: encoding: [0x62,0x52,0x87,0x08,0xf6,0xd9]
{evex} mulx r11, r15, r9
# CHECK: {evex} mulx edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf6,0x54,0x98,0x7b]
{evex} mulx edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: {evex} mulx r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf6,0x7c,0x98,0x7b]
{evex} mulx r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: mulx r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x4f,0x00,0xf6,0xd2]
mulx r26d, r22d, r18d
# CHECK: mulx r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xc7,0x00,0xf6,0xdb]
mulx r27, r23, r19
# CHECK: mulx r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf6,0xb4,0xac,0x23,0x01,0x00,0x00]
mulx r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: mulx r23, r19, qword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf6,0xbc,0xac,0x23,0x01,0x00,0x00]
mulx r23, r19, qword ptr [r28 + 4*r29 + 291]
## pdep
# CHECK: {evex} pdep r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x6f,0x08,0xf5,0xd1]
{evex} pdep r10d, edx, ecx
# CHECK: {evex} pdep r11, r15, r9
# CHECK: encoding: [0x62,0x52,0x87,0x08,0xf5,0xd9]
{evex} pdep r11, r15, r9
# CHECK: {evex} pdep edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf5,0x54,0x98,0x7b]
{evex} pdep edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: {evex} pdep r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf5,0x7c,0x98,0x7b]
{evex} pdep r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: pdep r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x4f,0x00,0xf5,0xd2]
pdep r26d, r22d, r18d
# CHECK: pdep r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xc7,0x00,0xf5,0xdb]
pdep r27, r23, r19
# CHECK: pdep r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00]
pdep r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: pdep r23, r19, qword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00]
pdep r23, r19, qword ptr [r28 + 4*r29 + 291]
## pext
# CHECK: {evex} pext r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x6e,0x08,0xf5,0xd1]
{evex} pext r10d, edx, ecx
# CHECK: {evex} pext r11, r15, r9
# CHECK: encoding: [0x62,0x52,0x86,0x08,0xf5,0xd9]
{evex} pext r11, r15, r9
# CHECK: {evex} pext edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0xf2,0x76,0x08,0xf5,0x54,0x98,0x7b]
{evex} pext edx, ecx, dword ptr [rax + 4*rbx + 123]
# CHECK: {evex} pext r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: encoding: [0x62,0x72,0xb6,0x08,0xf5,0x7c,0x98,0x7b]
{evex} pext r15, r9, qword ptr [rax + 4*rbx + 123]
# CHECK: pext r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x4e,0x00,0xf5,0xd2]
pext r26d, r22d, r18d
# CHECK: pext r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xc6,0x00,0xf5,0xdb]
pext r27, r23, r19
# CHECK: pext r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0x6a,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00]
pext r22d, r18d, dword ptr [r28 + 4*r29 + 291]
# CHECK: pext r23, r19, qword ptr [r28 + 4*r29 + 291]
# CHECK: encoding: [0x62,0x8a,0xe2,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00]
pext r23, r19, qword ptr [r28 + 4*r29 + 291]
## rorx
# CHECK: {evex} rorx edx, ecx, 123
# CHECK: encoding: [0x62,0xf3,0x7f,0x08,0xf0,0xd1,0x7b]
{evex} rorx edx, ecx, 123
# CHECK: {evex} rorx r15, r9, 123
# CHECK: encoding: [0x62,0x53,0xff,0x08,0xf0,0xf9,0x7b]
{evex} rorx r15, r9, 123
# CHECK: {evex} rorx ecx, dword ptr [rax + 4*rbx + 123], 123
# CHECK: encoding: [0x62,0xf3,0x7f,0x08,0xf0,0x4c,0x98,0x7b,0x7b]
{evex} rorx ecx, dword ptr [rax + 4*rbx + 123], 123
# CHECK: {evex} rorx r9, qword ptr [rax + 4*rbx + 123], 123
# CHECK: encoding: [0x62,0x73,0xff,0x08,0xf0,0x4c,0x98,0x7b,0x7b]
{evex} rorx r9, qword ptr [rax + 4*rbx + 123], 123
# CHECK: rorx r22d, r18d, 123
# CHECK: encoding: [0x62,0xeb,0x7f,0x08,0xf0,0xf2,0x7b]
rorx r22d, r18d, 123
# CHECK: rorx r23, r19, 123
# CHECK: encoding: [0x62,0xeb,0xff,0x08,0xf0,0xfb,0x7b]
rorx r23, r19, 123
# CHECK: rorx r18d, dword ptr [r28 + 4*r29 + 291], 123
# CHECK: encoding: [0x62,0x8b,0x7b,0x08,0xf0,0x94,0xac,0x23,0x01,0x00,0x00,0x7b]
rorx r18d, dword ptr [r28 + 4*r29 + 291], 123
# CHECK: rorx r19, qword ptr [r28 + 4*r29 + 291], 123
# CHECK: encoding: [0x62,0x8b,0xfb,0x08,0xf0,0x9c,0xac,0x23,0x01,0x00,0x00,0x7b]
rorx r19, qword ptr [r28 + 4*r29 + 291], 123
## sarx
# CHECK: {evex} sarx r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x76,0x08,0xf7,0xd2]
{evex} sarx r10d, edx, ecx
# CHECK: {evex} sarx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: encoding: [0x62,0xf2,0x76,0x08,0xf7,0x54,0x98,0x7b]
{evex} sarx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: {evex} sarx r11, r15, r9
# CHECK: encoding: [0x62,0x52,0xb6,0x08,0xf7,0xdf]
{evex} sarx r11, r15, r9
# CHECK: {evex} sarx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: encoding: [0x62,0x72,0xb6,0x08,0xf7,0x7c,0x98,0x7b]
{evex} sarx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: sarx r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x6e,0x00,0xf7,0xd6]
sarx r26d, r22d, r18d
# CHECK: sarx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: encoding: [0x62,0x8a,0x6a,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00]
sarx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: sarx r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xe6,0x00,0xf7,0xdf]
sarx r27, r23, r19
# CHECK: sarx r23, qword ptr [r28 + 4*r29 + 291], r19
# CHECK: encoding: [0x62,0x8a,0xe2,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00]
sarx r23, qword ptr [r28 + 4*r29 + 291], r19
## shlx
# CHECK: {evex} shlx r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x75,0x08,0xf7,0xd2]
{evex} shlx r10d, edx, ecx
# CHECK: {evex} shlx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: encoding: [0x62,0xf2,0x75,0x08,0xf7,0x54,0x98,0x7b]
{evex} shlx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: {evex} shlx r11, r15, r9
# CHECK: encoding: [0x62,0x52,0xb5,0x08,0xf7,0xdf]
{evex} shlx r11, r15, r9
# CHECK: {evex} shlx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: encoding: [0x62,0x72,0xb5,0x08,0xf7,0x7c,0x98,0x7b]
{evex} shlx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: shlx r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x6d,0x00,0xf7,0xd6]
shlx r26d, r22d, r18d
# CHECK: shlx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00]
shlx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: shlx r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xe5,0x00,0xf7,0xdf]
shlx r27, r23, r19
# CHECK: shlx r23, qword ptr [r28 + 4*r29 + 291], r19
# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00]
shlx r23, qword ptr [r28 + 4*r29 + 291], r19
## shrx
# CHECK: {evex} shrx r10d, edx, ecx
# CHECK: encoding: [0x62,0x72,0x77,0x08,0xf7,0xd2]
{evex} shrx r10d, edx, ecx
# CHECK: {evex} shrx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf7,0x54,0x98,0x7b]
{evex} shrx edx, dword ptr [rax + 4*rbx + 123], ecx
# CHECK: {evex} shrx r11, r15, r9
# CHECK: encoding: [0x62,0x52,0xb7,0x08,0xf7,0xdf]
{evex} shrx r11, r15, r9
# CHECK: {evex} shrx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf7,0x7c,0x98,0x7b]
{evex} shrx r15, qword ptr [rax + 4*rbx + 123], r9
# CHECK: shrx r26d, r22d, r18d
# CHECK: encoding: [0x62,0x6a,0x6f,0x00,0xf7,0xd6]
shrx r26d, r22d, r18d
# CHECK: shrx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00]
shrx r22d, dword ptr [r28 + 4*r29 + 291], r18d
# CHECK: shrx r27, r23, r19
# CHECK: encoding: [0x62,0x6a,0xe7,0x00,0xf7,0xdf]
shrx r27, r23, r19
# CHECK: shrx r23, qword ptr [r28 + 4*r29 + 291], r19
# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00]
shrx r23, qword ptr [r28 + 4*r29 + 291], r19