summaryrefslogtreecommitdiff
path: root/test/MC/AsmParser
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-09 18:27:43 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-09 18:27:43 +0000
commite86b01c153ba52307ecb6e7513ec33f57caedfdd (patch)
treeebe42983048a37e2d605773b27d53c84311874e3 /test/MC/AsmParser
parente05442d50806e2850eae1571958816028093df85 (diff)
downloadllvm-e86b01c153ba52307ecb6e7513ec33f57caedfdd.tar.gz
llvm-e86b01c153ba52307ecb6e7513ec33f57caedfdd.tar.bz2
llvm-e86b01c153ba52307ecb6e7513ec33f57caedfdd.tar.xz
Start the support for AVX instructions with 256-bit %ymm registers. A couple of
notes: - The instructions are being added with dummy placeholder patterns using some 256 specifiers, this is not meant to work now, but since there are some multiclasses generic enough to accept them, when we go for codegen, the stuff will be already there. - Add VEX encoding bits to support YMM - Add MOVUPS and MOVAPS in the first round - Use "Y" as suffix for those Instructions: MOVUPSYrr, ... - All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107996 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AsmParser')
-rw-r--r--test/MC/AsmParser/X86/x86_32-encoding.s49
-rw-r--r--test/MC/AsmParser/X86/x86_64-encoding.s49
2 files changed, 98 insertions, 0 deletions
diff --git a/test/MC/AsmParser/X86/x86_32-encoding.s b/test/MC/AsmParser/X86/x86_32-encoding.s
index a6d10c63c4..e4bf29e0b2 100644
--- a/test/MC/AsmParser/X86/x86_32-encoding.s
+++ b/test/MC/AsmParser/X86/x86_32-encoding.s
@@ -12305,3 +12305,52 @@
// CHECK: vcmpps $31, %xmm1, %xmm2, %xmm3
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1f]
vcmptrue_usps %xmm1, %xmm2, %xmm3
+
+// CHECK: vmovaps (%eax), %ymm2
+// CHECK: encoding: [0xc5,0xfc,0x28,0x10]
+ vmovaps (%eax), %ymm2
+
+// CHECK: vmovaps %ymm1, %ymm2
+// CHECK: encoding: [0xc5,0xfc,0x28,0xd1]
+ vmovaps %ymm1, %ymm2
+
+// CHECK: vmovaps %ymm1, (%eax)
+// CHECK: encoding: [0xc5,0xfc,0x29,0x08]
+ vmovaps %ymm1, (%eax)
+
+// CHECK: vmovapd (%eax), %ymm2
+// CHECK: encoding: [0xc5,0xfd,0x28,0x10]
+ vmovapd (%eax), %ymm2
+
+// CHECK: vmovapd %ymm1, %ymm2
+// CHECK: encoding: [0xc5,0xfd,0x28,0xd1]
+ vmovapd %ymm1, %ymm2
+
+// CHECK: vmovapd %ymm1, (%eax)
+// CHECK: encoding: [0xc5,0xfd,0x29,0x08]
+ vmovapd %ymm1, (%eax)
+
+// CHECK: vmovups (%eax), %ymm2
+// CHECK: encoding: [0xc5,0xfc,0x10,0x10]
+ vmovups (%eax), %ymm2
+
+// CHECK: vmovups %ymm1, %ymm2
+// CHECK: encoding: [0xc5,0xfc,0x10,0xd1]
+ vmovups %ymm1, %ymm2
+
+// CHECK: vmovups %ymm1, (%eax)
+// CHECK: encoding: [0xc5,0xfc,0x11,0x08]
+ vmovups %ymm1, (%eax)
+
+// CHECK: vmovupd (%eax), %ymm2
+// CHECK: encoding: [0xc5,0xfd,0x10,0x10]
+ vmovupd (%eax), %ymm2
+
+// CHECK: vmovupd %ymm1, %ymm2
+// CHECK: encoding: [0xc5,0xfd,0x10,0xd1]
+ vmovupd %ymm1, %ymm2
+
+// CHECK: vmovupd %ymm1, (%eax)
+// CHECK: encoding: [0xc5,0xfd,0x11,0x08]
+ vmovupd %ymm1, (%eax)
+
diff --git a/test/MC/AsmParser/X86/x86_64-encoding.s b/test/MC/AsmParser/X86/x86_64-encoding.s
index 185df8f2e0..452aa532a8 100644
--- a/test/MC/AsmParser/X86/x86_64-encoding.s
+++ b/test/MC/AsmParser/X86/x86_64-encoding.s
@@ -2379,3 +2379,52 @@ pshufb CPI1_0(%rip), %xmm1
// CHECK: vcmpps $31, %xmm11, %xmm12, %xmm13
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1f]
vcmptrue_usps %xmm11, %xmm12, %xmm13
+
+// CHECK: vmovaps (%rax), %ymm12
+// CHECK: encoding: [0xc5,0x7c,0x28,0x20]
+ vmovaps (%rax), %ymm12
+
+// CHECK: vmovaps %ymm11, %ymm12
+// CHECK: encoding: [0xc4,0x41,0x7c,0x28,0xe3]
+ vmovaps %ymm11, %ymm12
+
+// CHECK: vmovaps %ymm11, (%rax)
+// CHECK: encoding: [0xc5,0x7c,0x29,0x18]
+ vmovaps %ymm11, (%rax)
+
+// CHECK: vmovapd (%rax), %ymm12
+// CHECK: encoding: [0xc5,0x7d,0x28,0x20]
+ vmovapd (%rax), %ymm12
+
+// CHECK: vmovapd %ymm11, %ymm12
+// CHECK: encoding: [0xc4,0x41,0x7d,0x28,0xe3]
+ vmovapd %ymm11, %ymm12
+
+// CHECK: vmovapd %ymm11, (%rax)
+// CHECK: encoding: [0xc5,0x7d,0x29,0x18]
+ vmovapd %ymm11, (%rax)
+
+// CHECK: vmovups (%rax), %ymm12
+// CHECK: encoding: [0xc5,0x7c,0x10,0x20]
+ vmovups (%rax), %ymm12
+
+// CHECK: vmovups %ymm11, %ymm12
+// CHECK: encoding: [0xc4,0x41,0x7c,0x10,0xe3]
+ vmovups %ymm11, %ymm12
+
+// CHECK: vmovups %ymm11, (%rax)
+// CHECK: encoding: [0xc5,0x7c,0x11,0x18]
+ vmovups %ymm11, (%rax)
+
+// CHECK: vmovupd (%rax), %ymm12
+// CHECK: encoding: [0xc5,0x7d,0x10,0x20]
+ vmovupd (%rax), %ymm12
+
+// CHECK: vmovupd %ymm11, %ymm12
+// CHECK: encoding: [0xc4,0x41,0x7d,0x10,0xe3]
+ vmovupd %ymm11, %ymm12
+
+// CHECK: vmovupd %ymm11, (%rax)
+// CHECK: encoding: [0xc5,0x7d,0x11,0x18]
+ vmovupd %ymm11, (%rax)
+