114 changes: 114 additions & 0 deletions llvm/test/MC/X86/avx512vaes-encoding.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+vaes --show-encoding < %s | FileCheck %s

// CHECK: vaesenc %zmm3, %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdc,0xeb]
vaesenc %zmm3, %zmm2, %zmm21

// CHECK: vaesenclast %zmm3, %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdd,0xeb]
vaesenclast %zmm3, %zmm2, %zmm21

// CHECK: vaesdec %zmm3, %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xde,0xeb]
vaesdec %zmm3, %zmm2, %zmm21

// CHECK: vaesdeclast %zmm3, %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdf,0xeb]
vaesdeclast %zmm3, %zmm2, %zmm21

// CHECK: vaesenc (%rcx), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdc,0x29]
vaesenc (%rcx), %zmm2, %zmm21

// CHECK: vaesenc -256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdc,0x6c,0x24,0xfc]
vaesenc -256(%rsp), %zmm2, %zmm21

// CHECK: vaesenc 256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdc,0x6c,0x24,0x04]
vaesenc 256(%rsp), %zmm2, %zmm21

// CHECK: vaesenc 268435456(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdc,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenc 268435456(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesenc -536870912(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdc,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenc -536870912(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesenc -536870910(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdc,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenc -536870910(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesenclast (%rcx), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdd,0x29]
vaesenclast (%rcx), %zmm2, %zmm21

// CHECK: vaesenclast -256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdd,0x6c,0x24,0xfc]
vaesenclast -256(%rsp), %zmm2, %zmm21

// CHECK: vaesenclast 256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdd,0x6c,0x24,0x04]
vaesenclast 256(%rsp), %zmm2, %zmm21

// CHECK: vaesenclast 268435456(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdd,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenclast 268435456(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesenclast -536870912(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdd,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenclast -536870912(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesenclast -536870910(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdd,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenclast -536870910(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdec (%rcx), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xde,0x29]
vaesdec (%rcx), %zmm2, %zmm21

// CHECK: vaesdec -256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xde,0x6c,0x24,0xfc]
vaesdec -256(%rsp), %zmm2, %zmm21

// CHECK: vaesdec 256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xde,0x6c,0x24,0x04]
vaesdec 256(%rsp), %zmm2, %zmm21

// CHECK: vaesdec 268435456(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xde,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdec 268435456(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdec -536870912(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xde,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdec -536870912(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdec -536870910(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xde,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdec -536870910(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdeclast (%rcx), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdf,0x29]
vaesdeclast (%rcx), %zmm2, %zmm21

// CHECK: vaesdeclast -256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdf,0x6c,0x24,0xfc]
vaesdeclast -256(%rsp), %zmm2, %zmm21

// CHECK: vaesdeclast 256(%rsp), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x48,0xdf,0x6c,0x24,0x04]
vaesdeclast 256(%rsp), %zmm2, %zmm21

// CHECK: vaesdeclast 268435456(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdf,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdeclast 268435456(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdeclast -536870912(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdf,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdeclast -536870912(%rcx,%r14,8), %zmm2, %zmm21

// CHECK: vaesdeclast -536870910(%rcx,%r14,8), %zmm2, %zmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x48,0xdf,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdeclast -536870910(%rcx,%r14,8), %zmm2, %zmm21

226 changes: 226 additions & 0 deletions llvm/test/MC/X86/avx512vl_vaes-encoding.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
//RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx -mattr=+vaes --show-encoding < %s | FileCheck %s

// CHECK: vaesenc %xmm3, %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdc,0xeb]
vaesenc %xmm3, %xmm2, %xmm21

// CHECK: vaesenclast %xmm3, %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdd,0xeb]
vaesenclast %xmm3, %xmm2, %xmm21

// CHECK: vaesdec %xmm3, %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xde,0xeb]
vaesdec %xmm3, %xmm2, %xmm21

// CHECK: vaesdeclast %xmm3, %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdf,0xeb]
vaesdeclast %xmm3, %xmm2, %xmm21

// CHECK: vaesenc (%rcx), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdc,0x29]
vaesenc (%rcx), %xmm2, %xmm21

// CHECK: vaesenc -64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdc,0x6c,0x24,0xfc]
vaesenc -64(%rsp), %xmm2, %xmm21

// CHECK: vaesenc 64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdc,0x6c,0x24,0x04]
vaesenc 64(%rsp), %xmm2, %xmm21

// CHECK: vaesenc 268435456(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdc,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenc 268435456(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenc -536870912(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdc,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenc -536870912(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenc -536870910(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdc,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenc -536870910(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenclast (%rcx), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdd,0x29]
vaesenclast (%rcx), %xmm2, %xmm21

// CHECK: vaesenclast -64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdd,0x6c,0x24,0xfc]
vaesenclast -64(%rsp), %xmm2, %xmm21

// CHECK: vaesenclast 64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdd,0x6c,0x24,0x04]
vaesenclast 64(%rsp), %xmm2, %xmm21

// CHECK: vaesenclast 268435456(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdd,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenclast 268435456(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenclast -536870912(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdd,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenclast -536870912(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenclast -536870910(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdd,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenclast -536870910(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdec (%rcx), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xde,0x29]
vaesdec (%rcx), %xmm2, %xmm21

// CHECK: vaesdec -64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xde,0x6c,0x24,0xfc]
vaesdec -64(%rsp), %xmm2, %xmm21

// CHECK: vaesdec 64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xde,0x6c,0x24,0x04]
vaesdec 64(%rsp), %xmm2, %xmm21

// CHECK: vaesdec 268435456(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xde,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdec 268435456(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdec -536870912(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xde,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdec -536870912(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdec -536870910(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xde,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdec -536870910(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdeclast (%rcx), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdf,0x29]
vaesdeclast (%rcx), %xmm2, %xmm21

// CHECK: vaesdeclast -64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdf,0x6c,0x24,0xfc]
vaesdeclast -64(%rsp), %xmm2, %xmm21

// CHECK: vaesdeclast 64(%rsp), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x08,0xdf,0x6c,0x24,0x04]
vaesdeclast 64(%rsp), %xmm2, %xmm21

// CHECK: vaesdeclast 268435456(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdf,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdeclast 268435456(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdeclast -536870912(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdf,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdeclast -536870912(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesdeclast -536870910(%rcx,%r14,8), %xmm2, %xmm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x08,0xdf,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdeclast -536870910(%rcx,%r14,8), %xmm2, %xmm21

// CHECK: vaesenc %ymm3, %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdc,0xeb]
vaesenc %ymm3, %ymm2, %ymm21

// CHECK: vaesenclast %ymm3, %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdd,0xeb]
vaesenclast %ymm3, %ymm2, %ymm21

// CHECK: vaesdec %ymm3, %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xde,0xeb]
vaesdec %ymm3, %ymm2, %ymm21

// CHECK: vaesdeclast %ymm3, %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdf,0xeb]
vaesdeclast %ymm3, %ymm2, %ymm21

// CHECK: vaesenc (%rcx), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdc,0x29]
vaesenc (%rcx), %ymm2, %ymm21

// CHECK: vaesenc -128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdc,0x6c,0x24,0xfc]
vaesenc -128(%rsp), %ymm2, %ymm21

// CHECK: vaesenc 128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdc,0x6c,0x24,0x04]
vaesenc 128(%rsp), %ymm2, %ymm21

// CHECK: vaesenc 268435456(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdc,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenc 268435456(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesenc -536870912(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdc,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenc -536870912(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesenc -536870910(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdc,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenc -536870910(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesenclast (%rcx), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdd,0x29]
vaesenclast (%rcx), %ymm2, %ymm21

// CHECK: vaesenclast -128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdd,0x6c,0x24,0xfc]
vaesenclast -128(%rsp), %ymm2, %ymm21

// CHECK: vaesenclast 128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdd,0x6c,0x24,0x04]
vaesenclast 128(%rsp), %ymm2, %ymm21

// CHECK: vaesenclast 268435456(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdd,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesenclast 268435456(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesenclast -536870912(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdd,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesenclast -536870912(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesenclast -536870910(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdd,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesenclast -536870910(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdec (%rcx), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xde,0x29]
vaesdec (%rcx), %ymm2, %ymm21

// CHECK: vaesdec -128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xde,0x6c,0x24,0xfc]
vaesdec -128(%rsp), %ymm2, %ymm21

// CHECK: vaesdec 128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xde,0x6c,0x24,0x04]
vaesdec 128(%rsp), %ymm2, %ymm21

// CHECK: vaesdec 268435456(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xde,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdec 268435456(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdec -536870912(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xde,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdec -536870912(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdec -536870910(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xde,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdec -536870910(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdeclast (%rcx), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdf,0x29]
vaesdeclast (%rcx), %ymm2, %ymm21

// CHECK: vaesdeclast -128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdf,0x6c,0x24,0xfc]
vaesdeclast -128(%rsp), %ymm2, %ymm21

// CHECK: vaesdeclast 128(%rsp), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xe2,0x6d,0x28,0xdf,0x6c,0x24,0x04]
vaesdeclast 128(%rsp), %ymm2, %ymm21

// CHECK: vaesdeclast 268435456(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdf,0xac,0xf1,0x00,0x00,0x00,0x10]
vaesdeclast 268435456(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdeclast -536870912(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdf,0xac,0xf1,0x00,0x00,0x00,0xe0]
vaesdeclast -536870912(%rcx,%r14,8), %ymm2, %ymm21

// CHECK: vaesdeclast -536870910(%rcx,%r14,8), %ymm2, %ymm21
// CHECK: encoding: [0x62,0xa2,0x6d,0x28,0xdf,0xac,0xf1,0x02,0x00,0x00,0xe0]
vaesdeclast -536870910(%rcx,%r14,8), %ymm2, %ymm21

114 changes: 114 additions & 0 deletions llvm/test/MC/X86/avx_vaes-encoding.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
// RUN: llvm-mc -triple x86_64-unknown-unknown -mattr=vaes --show-encoding %s | FileCheck %s

// CHECK: vaesenc %ymm3, %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdc,0xcb]
vaesenc %ymm3, %ymm2, %ymm1

// CHECK: vaesenclast %ymm3, %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdd,0xcb]
vaesenclast %ymm3, %ymm2, %ymm1

// CHECK: vaesdec %ymm3, %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xde,0xcb]
vaesdec %ymm3, %ymm2, %ymm1

// CHECK: vaesdeclast %ymm3, %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdf,0xcb]
vaesdeclast %ymm3, %ymm2, %ymm1

// CHECK: vaesenc (%rcx), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdc,0x09]
vaesenc (%rcx), %ymm2, %ymm1

// CHECK: vaesenc -4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdc,0x4c,0x24,0xfc]
vaesenc -4(%rsp), %ymm2, %ymm1

// CHECK: vaesenc 4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdc,0x4c,0x24,0x04]
vaesenc 4(%rsp), %ymm2, %ymm1

// CHECK: vaesenc 268435456(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdc,0x8c,0xf1,0x00,0x00,0x00,0x10]
vaesenc 268435456(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesenc -536870912(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdc,0x8c,0xf1,0x00,0x00,0x00,0xe0]
vaesenc -536870912(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesenc -536870910(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdc,0x8c,0xf1,0x02,0x00,0x00,0xe0]
vaesenc -536870910(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesenclast (%rcx), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdd,0x09]
vaesenclast (%rcx), %ymm2, %ymm1

// CHECK: vaesenclast -4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdd,0x4c,0x24,0xfc]
vaesenclast -4(%rsp), %ymm2, %ymm1

// CHECK: vaesenclast 4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdd,0x4c,0x24,0x04]
vaesenclast 4(%rsp), %ymm2, %ymm1

// CHECK: vaesenclast 268435456(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdd,0x8c,0xf1,0x00,0x00,0x00,0x10]
vaesenclast 268435456(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesenclast -536870912(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdd,0x8c,0xf1,0x00,0x00,0x00,0xe0]
vaesenclast -536870912(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesenclast -536870910(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdd,0x8c,0xf1,0x02,0x00,0x00,0xe0]
vaesenclast -536870910(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdec (%rcx), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xde,0x09]
vaesdec (%rcx), %ymm2, %ymm1

// CHECK: vaesdec -4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xde,0x4c,0x24,0xfc]
vaesdec -4(%rsp), %ymm2, %ymm1

// CHECK: vaesdec 4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xde,0x4c,0x24,0x04]
vaesdec 4(%rsp), %ymm2, %ymm1

// CHECK: vaesdec 268435456(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xde,0x8c,0xf1,0x00,0x00,0x00,0x10]
vaesdec 268435456(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdec -536870912(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xde,0x8c,0xf1,0x00,0x00,0x00,0xe0]
vaesdec -536870912(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdec -536870910(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xde,0x8c,0xf1,0x02,0x00,0x00,0xe0]
vaesdec -536870910(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdeclast (%rcx), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdf,0x09]
vaesdeclast (%rcx), %ymm2, %ymm1

// CHECK: vaesdeclast -4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdf,0x4c,0x24,0xfc]
vaesdeclast -4(%rsp), %ymm2, %ymm1

// CHECK: vaesdeclast 4(%rsp), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xe2,0x6d,0xdf,0x4c,0x24,0x04]
vaesdeclast 4(%rsp), %ymm2, %ymm1

// CHECK: vaesdeclast 268435456(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdf,0x8c,0xf1,0x00,0x00,0x00,0x10]
vaesdeclast 268435456(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdeclast -536870912(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdf,0x8c,0xf1,0x00,0x00,0x00,0xe0]
vaesdeclast -536870912(%rcx,%r14,8), %ymm2, %ymm1

// CHECK: vaesdeclast -536870910(%rcx,%r14,8), %ymm2, %ymm1
// CHECK: encoding: [0xc4,0xa2,0x6d,0xdf,0x8c,0xf1,0x02,0x00,0x00,0xe0]
vaesdeclast -536870910(%rcx,%r14,8), %ymm2, %ymm1