Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,3 @@
// RUN: llvm-mc -triple i386-unknown-unknown %s
// PR10869
movl %gs:8, %eax

View File

@@ -0,0 +1,94 @@
// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
// PR8283
// CHECK: pavgusb %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xbf]
pavgusb %mm2, %mm1
// CHECK: pavgusb 9(%esi,%edx), %mm3 # encoding: [0x67,0x0f,0x0f,0x5c,0x16,0x09,0xbf]
pavgusb 9(%esi,%edx), %mm3
// CHECK: pf2id %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x1d]
pf2id %mm2, %mm1
// CHECK: pf2id 9(%esi,%edx), %mm3 # encoding: [0x67,0x0f,0x0f,0x5c,0x16,0x09,0x1d]
pf2id 9(%esi,%edx), %mm3
// CHECK: pfacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xae]
pfacc %mm2, %mm1
// CHECK: pfadd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x9e]
pfadd %mm2, %mm1
// CHECK: pfcmpeq %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb0]
pfcmpeq %mm2, %mm1
// CHECK: pfcmpge %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x90]
pfcmpge %mm2, %mm1
// CHECK: pfcmpgt %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa0]
pfcmpgt %mm2, %mm1
// CHECK: pfmax %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa4]
pfmax %mm2, %mm1
// CHECK: pfmin %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x94]
pfmin %mm2, %mm1
// CHECK: pfmul %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb4]
pfmul %mm2, %mm1
// CHECK: pfrcp %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x96]
pfrcp %mm2, %mm1
// CHECK: pfrcpit1 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa6]
pfrcpit1 %mm2, %mm1
// CHECK: pfrcpit2 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb6]
pfrcpit2 %mm2, %mm1
// CHECK: pfrsqit1 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa7]
pfrsqit1 %mm2, %mm1
// CHECK: pfrsqrt %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x97]
pfrsqrt %mm2, %mm1
// CHECK: pfsub %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x9a]
pfsub %mm2, %mm1
// CHECK: pfsubr %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xaa]
pfsubr %mm2, %mm1
// CHECK: pi2fd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x0d]
pi2fd %mm2, %mm1
// CHECK: pmulhrw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb7]
pmulhrw %mm2, %mm1
// CHECK: femms # encoding: [0x0f,0x0e]
femms
// CHECK: prefetch (%rax) # encoding: [0x0f,0x0d,0x00]
// CHECK: prefetchw (%rax) # encoding: [0x0f,0x0d,0x08]
// CHECK: prefetchwt1 (%rax) # encoding: [0x0f,0x0d,0x10]
prefetch (%rax)
prefetchw (%rax)
prefetchwt1 (%rax)
// CHECK: pf2iw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x1c]
pf2iw %mm2, %mm1
// CHECK: pi2fw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x0c]
pi2fw %mm2, %mm1
// CHECK: pfnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8a]
pfnacc %mm2, %mm1
// CHECK: pfpnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8e]
pfpnacc %mm2, %mm1
// CHECK: pswapd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xbb]
pswapd %mm2, %mm1

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1 @@
0030e2e5de0e8d974f480a4e91908a04352fad31

View File

@@ -0,0 +1 @@
cde724dbbdc23d32be5f8fb2f9ef342b63f5ccc3

View File

@@ -0,0 +1 @@
97c16d3fee517de44e36255552695ede373aec44

View File

@@ -0,0 +1 @@
fa5e57484da682cdaf1c29ce61d43978b93e4511

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,8 @@
# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
# Missing .bundle_align_mode argument
# CHECK: error: unknown token
.bundle_align_mode
imull $17, %ebx, %ebp

View File

@@ -0,0 +1,22 @@
# RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
# Just a simple test for the assembly emitter - making sure it emits back the
# bundling directives.
.text
foo:
.bundle_align_mode 4
# CHECK: .bundle_align_mode 4
pushq %rbp
.bundle_lock
# CHECK: .bundle_lock
cmpl %r14d, %ebp
jle .L_ELSE
.bundle_unlock
# CHECK: .bundle_unlock
.bundle_lock align_to_end
# CHECK: .bundle_lock align_to_end
add %rbx, %rdx
.bundle_unlock

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - 2>&1 | FileCheck %s
# CHECK: ERROR: Fragment can't be larger than a bundle size
.text
foo:
.bundle_align_mode 4
pushq %rbp
.bundle_lock
pushq %r14
callq bar
callq bar
callq bar
callq bar
.bundle_unlock

View File

@@ -0,0 +1,11 @@
# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
# Missing .bundle_align_mode argument
# CHECK: error: invalid option
.bundle_align_mode 4
.bundle_lock 5
imull $17, %ebx, %ebp
.bundle_unlock

View File

@@ -0,0 +1,27 @@
# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
# RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
# RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
# Test two different executable sections with bundling.
.bundle_align_mode 3
.section text1, "x"
# CHECK: section text1
imull $17, %ebx, %ebp
imull $17, %ebx, %ebp
imull $17, %ebx, %ebp
# CHECK: 6: nop
# CHECK-NEXT: 8: imull
.section text2, "x"
# CHECK: section text2
imull $17, %ebx, %ebp
imull $17, %ebx, %ebp
imull $17, %ebx, %ebp
# CHECK: 6: nop
# CHECK-NEXT: 8: imull

View File

@@ -0,0 +1,85 @@
# RUN: llvm-mc -triple=i686-linux -filetype=obj %s -o - | \
# RUN: llvm-objdump -disassemble -no-show-raw-insn -r - | FileCheck %s
# RUN: llvm-mc -triple=i686-nacl -filetype=obj %s -o - | \
# RUN: llvm-objdump -disassemble -no-show-raw-insn -r - | FileCheck %s
# RUN: llvm-mc -triple=i686-nacl -filetype=obj -mc-relax-all %s -o - | \
# RUN: llvm-objdump -disassemble -no-show-raw-insn -r - | FileCheck %s
.bundle_align_mode 5
.text
.globl main
.align 32, 0x90
.type main,@function
main: # @main
# CHECK-LABEL: main:
# Call + pop sequence for determining the PIC base.
.bundle_lock align_to_end
calll .L0$pb
.bundle_unlock
.L0$pb:
popl %eax
# CHECK: 20: popl
# 26 bytes of instructions between the pop and the use of the pic base symbol.
movl $3, 2(%ebx, %ebx)
movl $3, 2(%ebx, %ebx)
movl $3, 2(%ebx, %ebx)
hlt
hlt
# CHECK: nop
.Ltmp0:
addl (.Ltmp0-.L0$pb), %eax
# The addl has bundle padding to push it from 0x3b to 0x40.
# The difference between the labels should be 0x20 (0x40-0x20) not 0x1b
# (0x3b-0x20)
# CHECK: 40: addl 32, %eax
popl %ecx
jmp *%ecx
# Also make sure it works with a non-relaxable instruction (cmp vs add)
# and for 2 adjacent labels that both point to the correct instruction
.section .text.bar, "ax"
.globl bar
.align 32, 0x90
.type bar,@function
bar:
# CHECK-LABEL: bar:
.bundle_lock align_to_end
calll .L1$pb
.bundle_unlock
.L1$pb:
popl %eax
# CHECK: 20: popl
# 26 bytes of instructions between the pop and the use of the pic base symbol.
movl $3, 2(%ebx, %ebx)
movl $3, 2(%ebx, %ebx)
movl $3, 2(%ebx, %ebx)
hlt
hlt
# CHECK: nop
.Ltmp1:
.Ltmp2:
cmpl %eax, .Ltmp1
# CHECK: 40: cmpl %eax, 64
cmpl %eax, (.Ltmp2-.L1$pb)
# CHECK: 46: cmpl %eax, 32
popl %ecx
jmp *%ecx
# Switch sections in the middle of a function
.section .text.foo, "ax"
.globl foo
.align 32, 0x90
.type foo,@function
# CHECK-LABEL: foo:
foo:
inc %eax
tmp3:
.rodata
.type obj,@object
.comm obj,4,4
.section .text.foo
inc %eax
# CHECK: tmp3:
# CHECK-NEXT: 1: incl

View File

@@ -0,0 +1,3 @@
if not 'X86' in config.root.targets:
config.unsupported = True

View File

@@ -0,0 +1,10 @@
# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
# .bundle_lock can't come without a .bundle_align_mode before it
# CHECK: ERROR: .bundle_lock forbidden when bundling is disabled
imull $17, %ebx, %ebp
.bundle_lock

Some files were not shown because too many files have changed in this diff Show More