Index: llvm/trunk/test/MC/X86/AES-32.s =================================================================== --- llvm/trunk/test/MC/X86/AES-32.s +++ llvm/trunk/test/MC/X86/AES-32.s @@ -0,0 +1,170 @@ +// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s + +// CHECK: aesdec -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +aesdec -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesdec 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +aesdec 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesdec 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x8a,0xf0,0x1c,0xf0,0x1c] +aesdec 485498096(%edx), %xmm1 + +// CHECK: aesdec 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x0d,0xf0,0x1c,0xf0,0x1c] +aesdec 485498096, %xmm1 + +// CHECK: aesdec 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x4c,0x02,0x40] +aesdec 64(%edx,%eax), %xmm1 + +// CHECK: aesdec (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x0a] +aesdec (%edx), %xmm1 + +// CHECK: aesdeclast -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +aesdeclast -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesdeclast 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +aesdeclast 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesdeclast 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c] +aesdeclast 485498096(%edx), %xmm1 + +// CHECK: aesdeclast 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c] +aesdeclast 485498096, %xmm1 + +// CHECK: aesdeclast 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x4c,0x02,0x40] +aesdeclast 64(%edx,%eax), %xmm1 + +// CHECK: aesdeclast (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x0a] +aesdeclast (%edx), %xmm1 + +// CHECK: aesdeclast %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0xc9] +aesdeclast %xmm1, %xmm1 + +// CHECK: aesdec %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0xc9] +aesdec %xmm1, %xmm1 + +// CHECK: aesenc -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +aesenc -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesenc 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +aesenc 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesenc 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x8a,0xf0,0x1c,0xf0,0x1c] +aesenc 485498096(%edx), %xmm1 + +// CHECK: aesenc 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x0d,0xf0,0x1c,0xf0,0x1c] +aesenc 485498096, %xmm1 + +// CHECK: aesenc 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x4c,0x02,0x40] +aesenc 64(%edx,%eax), %xmm1 + +// CHECK: aesenc (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x0a] +aesenc (%edx), %xmm1 + +// CHECK: aesenclast -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +aesenclast -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesenclast 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +aesenclast 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesenclast 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x8a,0xf0,0x1c,0xf0,0x1c] +aesenclast 485498096(%edx), %xmm1 + +// CHECK: aesenclast 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x0d,0xf0,0x1c,0xf0,0x1c] +aesenclast 485498096, %xmm1 + +// CHECK: aesenclast 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x4c,0x02,0x40] +aesenclast 64(%edx,%eax), %xmm1 + +// CHECK: aesenclast (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x0a] +aesenclast (%edx), %xmm1 + +// CHECK: aesenclast %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0xc9] +aesenclast %xmm1, %xmm1 + +// CHECK: aesenc %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0xc9] +aesenc %xmm1, %xmm1 + +// CHECK: aesimc -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +aesimc -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesimc 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +aesimc 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aesimc 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x8a,0xf0,0x1c,0xf0,0x1c] +aesimc 485498096(%edx), %xmm1 + +// CHECK: aesimc 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x0d,0xf0,0x1c,0xf0,0x1c] +aesimc 485498096, %xmm1 + +// CHECK: aesimc 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x4c,0x02,0x40] +aesimc 64(%edx,%eax), %xmm1 + +// CHECK: aesimc (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x0a] +aesimc (%edx), %xmm1 + +// CHECK: aesimc %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0xc9] +aesimc %xmm1, %xmm1 + +// CHECK: aeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00] +aeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1 + +// CHECK: aeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00] +aeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1 + +// CHECK: aeskeygenassist $0, 485498096(%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c,0x00] +aeskeygenassist $0, 485498096(%edx), %xmm1 + +// CHECK: aeskeygenassist $0, 485498096, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c,0x00] +aeskeygenassist $0, 485498096, %xmm1 + +// CHECK: aeskeygenassist $0, 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x4c,0x02,0x40,0x00] +aeskeygenassist $0, 64(%edx,%eax), %xmm1 + +// CHECK: aeskeygenassist $0, (%edx), %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x0a,0x00] +aeskeygenassist $0, (%edx), %xmm1 + +// CHECK: aeskeygenassist $0, %xmm1, %xmm1 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0xc9,0x00] +aeskeygenassist $0, %xmm1, %xmm1 + Index: llvm/trunk/test/MC/X86/AES-64.s =================================================================== --- llvm/trunk/test/MC/X86/AES-64.s +++ llvm/trunk/test/MC/X86/AES-64.s @@ -0,0 +1,338 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s + +// CHECK: aesdec 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +aesdec 485498096, %xmm15 + +// CHECK: aesdec 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +aesdec 485498096, %xmm6 + +// CHECK: aesdec 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x7c,0x82,0x40] +aesdec 64(%rdx,%rax,4), %xmm15 + +// CHECK: aesdec -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x7c,0x82,0xc0] +aesdec -64(%rdx,%rax,4), %xmm15 + +// CHECK: aesdec 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x74,0x82,0x40] +aesdec 64(%rdx,%rax,4), %xmm6 + +// CHECK: aesdec -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x74,0x82,0xc0] +aesdec -64(%rdx,%rax,4), %xmm6 + +// CHECK: aesdec 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x7c,0x02,0x40] +aesdec 64(%rdx,%rax), %xmm15 + +// CHECK: aesdec 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x74,0x02,0x40] +aesdec 64(%rdx,%rax), %xmm6 + +// CHECK: aesdec 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x7a,0x40] +aesdec 64(%rdx), %xmm15 + +// CHECK: aesdec 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x72,0x40] +aesdec 64(%rdx), %xmm6 + +// CHECK: aesdeclast 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +aesdeclast 485498096, %xmm15 + +// CHECK: aesdeclast 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +aesdeclast 485498096, %xmm6 + +// CHECK: aesdeclast 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x7c,0x82,0x40] +aesdeclast 64(%rdx,%rax,4), %xmm15 + +// CHECK: aesdeclast -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x7c,0x82,0xc0] +aesdeclast -64(%rdx,%rax,4), %xmm15 + +// CHECK: aesdeclast 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x74,0x82,0x40] +aesdeclast 64(%rdx,%rax,4), %xmm6 + +// CHECK: aesdeclast -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x74,0x82,0xc0] +aesdeclast -64(%rdx,%rax,4), %xmm6 + +// CHECK: aesdeclast 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x7c,0x02,0x40] +aesdeclast 64(%rdx,%rax), %xmm15 + +// CHECK: aesdeclast 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x74,0x02,0x40] +aesdeclast 64(%rdx,%rax), %xmm6 + +// CHECK: aesdeclast 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x7a,0x40] +aesdeclast 64(%rdx), %xmm15 + +// CHECK: aesdeclast 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x72,0x40] +aesdeclast 64(%rdx), %xmm6 + +// CHECK: aesdeclast (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdf,0x3a] +aesdeclast (%rdx), %xmm15 + +// CHECK: aesdeclast (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0x32] +aesdeclast (%rdx), %xmm6 + +// CHECK: aesdeclast %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x38,0xdf,0xff] +aesdeclast %xmm15, %xmm15 + +// CHECK: aesdeclast %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdf,0xf6] +aesdeclast %xmm6, %xmm6 + +// CHECK: aesdec (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xde,0x3a] +aesdec (%rdx), %xmm15 + +// CHECK: aesdec (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0x32] +aesdec (%rdx), %xmm6 + +// CHECK: aesdec %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x38,0xde,0xff] +aesdec %xmm15, %xmm15 + +// CHECK: aesdec %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xde,0xf6] +aesdec %xmm6, %xmm6 + +// CHECK: aesenc 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +aesenc 485498096, %xmm15 + +// CHECK: aesenc 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +aesenc 485498096, %xmm6 + +// CHECK: aesenc 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x7c,0x82,0x40] +aesenc 64(%rdx,%rax,4), %xmm15 + +// CHECK: aesenc -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x7c,0x82,0xc0] +aesenc -64(%rdx,%rax,4), %xmm15 + +// CHECK: aesenc 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x74,0x82,0x40] +aesenc 64(%rdx,%rax,4), %xmm6 + +// CHECK: aesenc -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x74,0x82,0xc0] +aesenc -64(%rdx,%rax,4), %xmm6 + +// CHECK: aesenc 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x7c,0x02,0x40] +aesenc 64(%rdx,%rax), %xmm15 + +// CHECK: aesenc 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x74,0x02,0x40] +aesenc 64(%rdx,%rax), %xmm6 + +// CHECK: aesenc 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x7a,0x40] +aesenc 64(%rdx), %xmm15 + +// CHECK: aesenc 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x72,0x40] +aesenc 64(%rdx), %xmm6 + +// CHECK: aesenclast 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +aesenclast 485498096, %xmm15 + +// CHECK: aesenclast 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +aesenclast 485498096, %xmm6 + +// CHECK: aesenclast 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x7c,0x82,0x40] +aesenclast 64(%rdx,%rax,4), %xmm15 + +// CHECK: aesenclast -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x7c,0x82,0xc0] +aesenclast -64(%rdx,%rax,4), %xmm15 + +// CHECK: aesenclast 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x74,0x82,0x40] +aesenclast 64(%rdx,%rax,4), %xmm6 + +// CHECK: aesenclast -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x74,0x82,0xc0] +aesenclast -64(%rdx,%rax,4), %xmm6 + +// CHECK: aesenclast 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x7c,0x02,0x40] +aesenclast 64(%rdx,%rax), %xmm15 + +// CHECK: aesenclast 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x74,0x02,0x40] +aesenclast 64(%rdx,%rax), %xmm6 + +// CHECK: aesenclast 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x7a,0x40] +aesenclast 64(%rdx), %xmm15 + +// CHECK: aesenclast 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x72,0x40] +aesenclast 64(%rdx), %xmm6 + +// CHECK: aesenclast (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdd,0x3a] +aesenclast (%rdx), %xmm15 + +// CHECK: aesenclast (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0x32] +aesenclast (%rdx), %xmm6 + +// CHECK: aesenclast %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x38,0xdd,0xff] +aesenclast %xmm15, %xmm15 + +// CHECK: aesenclast %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdd,0xf6] +aesenclast %xmm6, %xmm6 + +// CHECK: aesenc (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdc,0x3a] +aesenc (%rdx), %xmm15 + +// CHECK: aesenc (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0x32] +aesenc (%rdx), %xmm6 + +// CHECK: aesenc %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x38,0xdc,0xff] +aesenc %xmm15, %xmm15 + +// CHECK: aesenc %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdc,0xf6] +aesenc %xmm6, %xmm6 + +// CHECK: aesimc 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +aesimc 485498096, %xmm15 + +// CHECK: aesimc 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +aesimc 485498096, %xmm6 + +// CHECK: aesimc 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x7c,0x82,0x40] +aesimc 64(%rdx,%rax,4), %xmm15 + +// CHECK: aesimc -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x7c,0x82,0xc0] +aesimc -64(%rdx,%rax,4), %xmm15 + +// CHECK: aesimc 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x74,0x82,0x40] +aesimc 64(%rdx,%rax,4), %xmm6 + +// CHECK: aesimc -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x74,0x82,0xc0] +aesimc -64(%rdx,%rax,4), %xmm6 + +// CHECK: aesimc 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x7c,0x02,0x40] +aesimc 64(%rdx,%rax), %xmm15 + +// CHECK: aesimc 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x74,0x02,0x40] +aesimc 64(%rdx,%rax), %xmm6 + +// CHECK: aesimc 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x7a,0x40] +aesimc 64(%rdx), %xmm15 + +// CHECK: aesimc 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x72,0x40] +aesimc 64(%rdx), %xmm6 + +// CHECK: aesimc (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x38,0xdb,0x3a] +aesimc (%rdx), %xmm15 + +// CHECK: aesimc (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0x32] +aesimc (%rdx), %xmm6 + +// CHECK: aesimc %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x38,0xdb,0xff] +aesimc %xmm15, %xmm15 + +// CHECK: aesimc %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x38,0xdb,0xf6] +aesimc %xmm6, %xmm6 + +// CHECK: aeskeygenassist $0, 485498096, %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00] +aeskeygenassist $0, 485498096, %xmm15 + +// CHECK: aeskeygenassist $0, 485498096, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00] +aeskeygenassist $0, 485498096, %xmm6 + +// CHECK: aeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x7c,0x82,0x40,0x00] +aeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 + +// CHECK: aeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x7c,0x82,0xc0,0x00] +aeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 + +// CHECK: aeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x74,0x82,0x40,0x00] +aeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 + +// CHECK: aeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x74,0x82,0xc0,0x00] +aeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 + +// CHECK: aeskeygenassist $0, 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x7c,0x02,0x40,0x00] +aeskeygenassist $0, 64(%rdx,%rax), %xmm15 + +// CHECK: aeskeygenassist $0, 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x74,0x02,0x40,0x00] +aeskeygenassist $0, 64(%rdx,%rax), %xmm6 + +// CHECK: aeskeygenassist $0, 64(%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x7a,0x40,0x00] +aeskeygenassist $0, 64(%rdx), %xmm15 + +// CHECK: aeskeygenassist $0, 64(%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x72,0x40,0x00] +aeskeygenassist $0, 64(%rdx), %xmm6 + +// CHECK: aeskeygenassist $0, (%rdx), %xmm15 +// CHECK: encoding: [0x66,0x44,0x0f,0x3a,0xdf,0x3a,0x00] +aeskeygenassist $0, (%rdx), %xmm15 + +// CHECK: aeskeygenassist $0, (%rdx), %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x32,0x00] +aeskeygenassist $0, (%rdx), %xmm6 + +// CHECK: aeskeygenassist $0, %xmm15, %xmm15 +// CHECK: encoding: [0x66,0x45,0x0f,0x3a,0xdf,0xff,0x00] +aeskeygenassist $0, %xmm15, %xmm15 + +// CHECK: aeskeygenassist $0, %xmm6, %xmm6 +// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0xf6,0x00] +aeskeygenassist $0, %xmm6, %xmm6 + Index: llvm/trunk/test/MC/X86/AVXAES-32.s =================================================================== --- llvm/trunk/test/MC/X86/AVXAES-32.s +++ llvm/trunk/test/MC/X86/AVXAES-32.s @@ -0,0 +1,170 @@ +// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s + +// CHECK: vaesdec -485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +vaesdec -485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesdec 485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +vaesdec 485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesdec 485498096(%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x8a,0xf0,0x1c,0xf0,0x1c] +vaesdec 485498096(%edx), %xmm1, %xmm1 + +// CHECK: vaesdec 485498096, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x0d,0xf0,0x1c,0xf0,0x1c] +vaesdec 485498096, %xmm1, %xmm1 + +// CHECK: vaesdec 64(%edx,%eax), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x4c,0x02,0x40] +vaesdec 64(%edx,%eax), %xmm1, %xmm1 + +// CHECK: vaesdec (%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0x0a] +vaesdec (%edx), %xmm1, %xmm1 + +// CHECK: vaesdeclast -485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +vaesdeclast -485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesdeclast 485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +vaesdeclast 485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesdeclast 485498096(%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c] +vaesdeclast 485498096(%edx), %xmm1, %xmm1 + +// CHECK: vaesdeclast 485498096, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c] +vaesdeclast 485498096, %xmm1, %xmm1 + +// CHECK: vaesdeclast 64(%edx,%eax), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x4c,0x02,0x40] +vaesdeclast 64(%edx,%eax), %xmm1, %xmm1 + +// CHECK: vaesdeclast (%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0x0a] +vaesdeclast (%edx), %xmm1, %xmm1 + +// CHECK: vaesdeclast %xmm1, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdf,0xc9] +vaesdeclast %xmm1, %xmm1, %xmm1 + +// CHECK: vaesdec %xmm1, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xde,0xc9] +vaesdec %xmm1, %xmm1, %xmm1 + +// CHECK: vaesenc -485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +vaesenc -485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesenc 485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +vaesenc 485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesenc 485498096(%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x8a,0xf0,0x1c,0xf0,0x1c] +vaesenc 485498096(%edx), %xmm1, %xmm1 + +// CHECK: vaesenc 485498096, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x0d,0xf0,0x1c,0xf0,0x1c] +vaesenc 485498096, %xmm1, %xmm1 + +// CHECK: vaesenc 64(%edx,%eax), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x4c,0x02,0x40] +vaesenc 64(%edx,%eax), %xmm1, %xmm1 + +// CHECK: vaesenc (%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0x0a] +vaesenc (%edx), %xmm1, %xmm1 + +// CHECK: vaesenclast -485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +vaesenclast -485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesenclast 485498096(%edx,%eax,4), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +vaesenclast 485498096(%edx,%eax,4), %xmm1, %xmm1 + +// CHECK: vaesenclast 485498096(%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x8a,0xf0,0x1c,0xf0,0x1c] +vaesenclast 485498096(%edx), %xmm1, %xmm1 + +// CHECK: vaesenclast 485498096, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x0d,0xf0,0x1c,0xf0,0x1c] +vaesenclast 485498096, %xmm1, %xmm1 + +// CHECK: vaesenclast 64(%edx,%eax), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x4c,0x02,0x40] +vaesenclast 64(%edx,%eax), %xmm1, %xmm1 + +// CHECK: vaesenclast (%edx), %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0x0a] +vaesenclast (%edx), %xmm1, %xmm1 + +// CHECK: vaesenclast %xmm1, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdd,0xc9] +vaesenclast %xmm1, %xmm1, %xmm1 + +// CHECK: vaesenc %xmm1, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x71,0xdc,0xc9] +vaesenc %xmm1, %xmm1, %xmm1 + +// CHECK: vaesimc -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x8c,0x82,0x10,0xe3,0x0f,0xe3] +vaesimc -485498096(%edx,%eax,4), %xmm1 + +// CHECK: vaesimc 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c] +vaesimc 485498096(%edx,%eax,4), %xmm1 + +// CHECK: vaesimc 485498096(%edx), %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x8a,0xf0,0x1c,0xf0,0x1c] +vaesimc 485498096(%edx), %xmm1 + +// CHECK: vaesimc 485498096, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x0d,0xf0,0x1c,0xf0,0x1c] +vaesimc 485498096, %xmm1 + +// CHECK: vaesimc 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x4c,0x02,0x40] +vaesimc 64(%edx,%eax), %xmm1 + +// CHECK: vaesimc (%edx), %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x0a] +vaesimc (%edx), %xmm1 + +// CHECK: vaesimc %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0xc9] +vaesimc %xmm1, %xmm1 + +// CHECK: vaeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00] +vaeskeygenassist $0, -485498096(%edx,%eax,4), %xmm1 + +// CHECK: vaeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00] +vaeskeygenassist $0, 485498096(%edx,%eax,4), %xmm1 + +// CHECK: vaeskeygenassist $0, 485498096(%edx), %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x8a,0xf0,0x1c,0xf0,0x1c,0x00] +vaeskeygenassist $0, 485498096(%edx), %xmm1 + +// CHECK: vaeskeygenassist $0, 485498096, %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x0d,0xf0,0x1c,0xf0,0x1c,0x00] +vaeskeygenassist $0, 485498096, %xmm1 + +// CHECK: vaeskeygenassist $0, 64(%edx,%eax), %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x4c,0x02,0x40,0x00] +vaeskeygenassist $0, 64(%edx,%eax), %xmm1 + +// CHECK: vaeskeygenassist $0, (%edx), %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x0a,0x00] +vaeskeygenassist $0, (%edx), %xmm1 + +// CHECK: vaeskeygenassist $0, %xmm1, %xmm1 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0xc9,0x00] +vaeskeygenassist $0, %xmm1, %xmm1 + Index: llvm/trunk/test/MC/X86/AVXAES-64.s =================================================================== --- llvm/trunk/test/MC/X86/AVXAES-64.s +++ llvm/trunk/test/MC/X86/AVXAES-64.s @@ -0,0 +1,338 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s + +// CHECK: vaesdec 485498096, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +vaesdec 485498096, %xmm15, %xmm15 + +// CHECK: vaesdec 485498096, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +vaesdec 485498096, %xmm6, %xmm6 + +// CHECK: vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0x40] +vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0xc0] +vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0x40] +vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0xc0] +vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesdec 64(%rdx,%rax), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x02,0x40] +vaesdec 64(%rdx,%rax), %xmm15, %xmm15 + +// CHECK: vaesdec 64(%rdx,%rax), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x02,0x40] +vaesdec 64(%rdx,%rax), %xmm6, %xmm6 + +// CHECK: vaesdec 64(%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7a,0x40] +vaesdec 64(%rdx), %xmm15, %xmm15 + +// CHECK: vaesdec 64(%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x72,0x40] +vaesdec 64(%rdx), %xmm6, %xmm6 + +// CHECK: vaesdeclast 485498096, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +vaesdeclast 485498096, %xmm15, %xmm15 + +// CHECK: vaesdeclast 485498096, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +vaesdeclast 485498096, %xmm6, %xmm6 + +// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0x40] +vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0xc0] +vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0x40] +vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0xc0] +vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x02,0x40] +vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15 + +// CHECK: vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x02,0x40] +vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6 + +// CHECK: vaesdeclast 64(%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7a,0x40] +vaesdeclast 64(%rdx), %xmm15, %xmm15 + +// CHECK: vaesdeclast 64(%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x72,0x40] +vaesdeclast 64(%rdx), %xmm6, %xmm6 + +// CHECK: vaesdeclast (%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3a] +vaesdeclast (%rdx), %xmm15, %xmm15 + +// CHECK: vaesdeclast (%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x32] +vaesdeclast (%rdx), %xmm6, %xmm6 + +// CHECK: vaesdeclast %xmm15, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x42,0x01,0xdf,0xff] +vaesdeclast %xmm15, %xmm15, %xmm15 + +// CHECK: vaesdeclast %xmm6, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0xf6] +vaesdeclast %xmm6, %xmm6, %xmm6 + +// CHECK: vaesdec (%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3a] +vaesdec (%rdx), %xmm15, %xmm15 + +// CHECK: vaesdec (%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x32] +vaesdec (%rdx), %xmm6, %xmm6 + +// CHECK: vaesdec %xmm15, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x42,0x01,0xde,0xff] +vaesdec %xmm15, %xmm15, %xmm15 + +// CHECK: vaesdec %xmm6, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0xf6] +vaesdec %xmm6, %xmm6, %xmm6 + +// CHECK: vaesenc 485498096, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +vaesenc 485498096, %xmm15, %xmm15 + +// CHECK: vaesenc 485498096, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +vaesenc 485498096, %xmm6, %xmm6 + +// CHECK: vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0x40] +vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0xc0] +vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0x40] +vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0xc0] +vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesenc 64(%rdx,%rax), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x02,0x40] +vaesenc 64(%rdx,%rax), %xmm15, %xmm15 + +// CHECK: vaesenc 64(%rdx,%rax), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x02,0x40] +vaesenc 64(%rdx,%rax), %xmm6, %xmm6 + +// CHECK: vaesenc 64(%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7a,0x40] +vaesenc 64(%rdx), %xmm15, %xmm15 + +// CHECK: vaesenc 64(%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x72,0x40] +vaesenc 64(%rdx), %xmm6, %xmm6 + +// CHECK: vaesenclast 485498096, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +vaesenclast 485498096, %xmm15, %xmm15 + +// CHECK: vaesenclast 485498096, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +vaesenclast 485498096, %xmm6, %xmm6 + +// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0x40] +vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0xc0] +vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15 + +// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0x40] +vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0xc0] +vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6 + +// CHECK: vaesenclast 64(%rdx,%rax), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x02,0x40] +vaesenclast 64(%rdx,%rax), %xmm15, %xmm15 + +// CHECK: vaesenclast 64(%rdx,%rax), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x02,0x40] +vaesenclast 64(%rdx,%rax), %xmm6, %xmm6 + +// CHECK: vaesenclast 64(%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7a,0x40] +vaesenclast 64(%rdx), %xmm15, %xmm15 + +// CHECK: vaesenclast 64(%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x72,0x40] +vaesenclast 64(%rdx), %xmm6, %xmm6 + +// CHECK: vaesenclast (%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3a] +vaesenclast (%rdx), %xmm15, %xmm15 + +// CHECK: vaesenclast (%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x32] +vaesenclast (%rdx), %xmm6, %xmm6 + +// CHECK: vaesenclast %xmm15, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x42,0x01,0xdd,0xff] +vaesenclast %xmm15, %xmm15, %xmm15 + +// CHECK: vaesenclast %xmm6, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0xf6] +vaesenclast %xmm6, %xmm6, %xmm6 + +// CHECK: vaesenc (%rdx), %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3a] +vaesenc (%rdx), %xmm15, %xmm15 + +// CHECK: vaesenc (%rdx), %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x32] +vaesenc (%rdx), %xmm6, %xmm6 + +// CHECK: vaesenc %xmm15, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x42,0x01,0xdc,0xff] +vaesenc %xmm15, %xmm15, %xmm15 + +// CHECK: vaesenc %xmm6, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0xf6] +vaesenc %xmm6, %xmm6, %xmm6 + +// CHECK: vaesimc 485498096, %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] +vaesimc 485498096, %xmm15 + +// CHECK: vaesimc 485498096, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x34,0x25,0xf0,0x1c,0xf0,0x1c] +vaesimc 485498096, %xmm6 + +// CHECK: vaesimc 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0x40] +vaesimc 64(%rdx,%rax,4), %xmm15 + +// CHECK: vaesimc -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0xc0] +vaesimc -64(%rdx,%rax,4), %xmm15 + +// CHECK: vaesimc 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0x40] +vaesimc 64(%rdx,%rax,4), %xmm6 + +// CHECK: vaesimc -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0xc0] +vaesimc -64(%rdx,%rax,4), %xmm6 + +// CHECK: vaesimc 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x02,0x40] +vaesimc 64(%rdx,%rax), %xmm15 + +// CHECK: vaesimc 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x02,0x40] +vaesimc 64(%rdx,%rax), %xmm6 + +// CHECK: vaesimc 64(%rdx), %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7a,0x40] +vaesimc 64(%rdx), %xmm15 + +// CHECK: vaesimc 64(%rdx), %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x72,0x40] +vaesimc 64(%rdx), %xmm6 + +// CHECK: vaesimc (%rdx), %xmm15 +// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3a] +vaesimc (%rdx), %xmm15 + +// CHECK: vaesimc (%rdx), %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x32] +vaesimc (%rdx), %xmm6 + +// CHECK: vaesimc %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x42,0x79,0xdb,0xff] +vaesimc %xmm15, %xmm15 + +// CHECK: vaesimc %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0xf6] +vaesimc %xmm6, %xmm6 + +// CHECK: vaeskeygenassist $0, 485498096, %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00] +vaeskeygenassist $0, 485498096, %xmm15 + +// CHECK: vaeskeygenassist $0, 485498096, %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00] +vaeskeygenassist $0, 485498096, %xmm6 + +// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0x40,0x00] +vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 + +// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0xc0,0x00] +vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 + +// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0x40,0x00] +vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 + +// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0xc0,0x00] +vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 + +// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x02,0x40,0x00] +vaeskeygenassist $0, 64(%rdx,%rax), %xmm15 + +// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x02,0x40,0x00] +vaeskeygenassist $0, 64(%rdx,%rax), %xmm6 + +// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7a,0x40,0x00] +vaeskeygenassist $0, 64(%rdx), %xmm15 + +// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x72,0x40,0x00] +vaeskeygenassist $0, 64(%rdx), %xmm6 + +// CHECK: vaeskeygenassist $0, (%rdx), %xmm15 +// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3a,0x00] +vaeskeygenassist $0, (%rdx), %xmm15 + +// CHECK: vaeskeygenassist $0, (%rdx), %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x32,0x00] +vaeskeygenassist $0, (%rdx), %xmm6 + +// CHECK: vaeskeygenassist $0, %xmm15, %xmm15 +// CHECK: encoding: [0xc4,0x43,0x79,0xdf,0xff,0x00] +vaeskeygenassist $0, %xmm15, %xmm15 + +// CHECK: vaeskeygenassist $0, %xmm6, %xmm6 +// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0xf6,0x00] +vaeskeygenassist $0, %xmm6, %xmm6 +