summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td2
-rw-r--r--llvm/test/MC/X86/avx512-encodings.s347
2 files changed, 347 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index 64c6e8dd7e9..9c5f96f358d 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -3084,7 +3084,7 @@ def VMOVZPQILo2PQIZrr : AVX512XSI<0x7E, MRMSrcReg, (outs VR128X:$dst),
(v2i64 VR128X:$src))))],
IIC_SSE_MOVQ_RR>, EVEX, VEX_W;
-let AddedComplexity = 20 in
+let AddedComplexity = 20 , isCodeGenOnly = 1 in
def VMOVZPQILo2PQIZrm : AVX512XSI<0x7E, MRMSrcMem, (outs VR128X:$dst),
(ins i128mem:$src),
"vmovq\t{$src, $dst|$dst, $src}",
diff --git a/llvm/test/MC/X86/avx512-encodings.s b/llvm/test/MC/X86/avx512-encodings.s
index 3453f3df07a..dc0ee7e671b 100644
--- a/llvm/test/MC/X86/avx512-encodings.s
+++ b/llvm/test/MC/X86/avx512-encodings.s
@@ -17951,4 +17951,349 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
// CHECK: vcvtps2ph $123, %zmm19, -4128(%rdx)
// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x9a,0xe0,0xef,0xff,0xff,0x7b]
- vcvtps2ph $0x7b, %zmm19, -4128(%rdx) \ No newline at end of file
+ vcvtps2ph $0x7b, %zmm19, -4128(%rdx)
+
+// CHECK: vmovq %rax, %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0xe8]
+ vmovq %rax, %xmm29
+
+// CHECK: vmovq %r8, %xmm29
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x6e,0xe8]
+ vmovq %r8, %xmm29
+
+// CHECK: vmovq (%rcx), %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x29]
+ vmovq (%rcx), %xmm29
+
+// CHECK: vmovq 291(%rax,%r14,8), %xmm29
+// CHECK: encoding: [0x62,0x21,0xfd,0x08,0x6e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovq 291(%rax,%r14,8), %xmm29
+
+// CHECK: vmovq 1016(%rdx), %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x6a,0x7f]
+ vmovq 1016(%rdx), %xmm29
+
+// CHECK: vmovq 1024(%rdx), %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0xaa,0x00,0x04,0x00,0x00]
+ vmovq 1024(%rdx), %xmm29
+
+// CHECK: vmovq -1024(%rdx), %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x6a,0x80]
+ vmovq -1024(%rdx), %xmm29
+
+// CHECK: vmovq -1032(%rdx), %xmm29
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0xaa,0xf8,0xfb,0xff,0xff]
+ vmovq -1032(%rdx), %xmm29
+
+// CHECK: vmovq %xmm17, (%rcx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x09]
+ vmovq %xmm17, (%rcx)
+
+// CHECK: vmovq %xmm17, 291(%rax,%r14,8)
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0xd6,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovq %xmm17, 291(%rax,%r14,8)
+
+// CHECK: vmovq %xmm17, 1016(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x4a,0x7f]
+ vmovq %xmm17, 1016(%rdx)
+
+// CHECK: vmovq %xmm17, 1024(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x8a,0x00,0x04,0x00,0x00]
+ vmovq %xmm17, 1024(%rdx)
+
+// CHECK: vmovq %xmm17, -1024(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x4a,0x80]
+ vmovq %xmm17, -1024(%rdx)
+
+// CHECK: vmovq %xmm17, -1032(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovq %xmm17, -1032(%rdx)
+
+// CHECK: vmovq %xmm3, %xmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x08,0x7e,0xc3]
+ vmovq %xmm3, %xmm24
+
+// CHECK: vmovq (%rcx), %xmm24
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x01]
+ vmovq (%rcx), %xmm24
+
+// CHECK: vmovq 291(%rax,%r14,8), %xmm24
+// CHECK: encoding: [0x62,0x21,0xfd,0x08,0x6e,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmovq 291(%rax,%r14,8), %xmm24
+
+// CHECK: vmovq 1016(%rdx), %xmm24
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x42,0x7f]
+ vmovq 1016(%rdx), %xmm24
+
+// CHECK: vmovq 1024(%rdx), %xmm24
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x82,0x00,0x04,0x00,0x00]
+ vmovq 1024(%rdx), %xmm24
+
+// CHECK: vmovq -1024(%rdx), %xmm24
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x42,0x80]
+ vmovq -1024(%rdx), %xmm24
+
+// CHECK: vmovq -1032(%rdx), %xmm24
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0x82,0xf8,0xfb,0xff,0xff]
+ vmovq -1032(%rdx), %xmm24
+
+// CHECK: vmovq %xmm19, (%rcx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x19]
+ vmovq %xmm19, (%rcx)
+
+// CHECK: vmovq %xmm19, 291(%rax,%r14,8)
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0xd6,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmovq %xmm19, 291(%rax,%r14,8)
+
+// CHECK: vmovq %xmm19, 1016(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x5a,0x7f]
+ vmovq %xmm19, 1016(%rdx)
+
+// CHECK: vmovq %xmm19, 1024(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x9a,0x00,0x04,0x00,0x00]
+ vmovq %xmm19, 1024(%rdx)
+
+// CHECK: vmovq %xmm19, -1024(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x5a,0x80]
+ vmovq %xmm19, -1024(%rdx)
+
+// CHECK: vmovq %xmm19, -1032(%rdx)
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0xd6,0x9a,0xf8,0xfb,0xff,0xff]
+ vmovq %xmm19, -1032(%rdx)
+
+// CHECK: vmovq %xmm27, %rax
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x7e,0xd8]
+ vmovq %xmm27, %rax
+
+// CHECK: vmovq %xmm27, %rax
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x7e,0xd8]
+ vmovq %xmm27, %rax
+
+// CHECK: vmovq %xmm27, %r8
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x7e,0xd8]
+ vmovq %xmm27, %r8
+
+// CHECK: vmovq %xmm27, %r8
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x7e,0xd8]
+ vmovq %xmm27, %r8
+
+// CHECK: vmovq %xmm22, %rax
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x7e,0xf0]
+ vmovq %xmm22, %rax
+
+// CHECK: vmovq %xmm22, %rax
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x7e,0xf0]
+ vmovq %xmm22, %rax
+
+// CHECK: vmovq %xmm22, %r8
+// CHECK: encoding: [0x62,0xc1,0xfd,0x08,0x7e,0xf0]
+ vmovq %xmm22, %r8
+
+// CHECK: vmovq %xmm22, %r8
+// CHECK: encoding: [0x62,0xc1,0xfd,0x08,0x7e,0xf0]
+ vmovq %xmm22, %r8
+
+// CHECK: vmovq %xmm29, %xmm29
+// CHECK: encoding: [0x62,0x01,0xfe,0x08,0x7e,0xed]
+ vmovq %xmm29, %xmm29
+
+// CHECK: vmovq %xmm25, %xmm8
+// CHECK: encoding: [0x62,0x11,0xfe,0x08,0x7e,0xc1]
+ vmovq %xmm25, %xmm8
+
+// CHECK: vmovq %xmm29, %rax
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x7e,0xe8]
+ vmovq %xmm29, %rax
+
+// CHECK: vmovq %xmm29, %rax
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x7e,0xe8]
+ vmovq %xmm29, %rax
+
+// CHECK: vmovq %xmm29, %r8
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x7e,0xe8]
+ vmovq %xmm29, %r8
+
+// CHECK: vmovq %xmm29, %r8
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x7e,0xe8]
+ vmovq %xmm29, %r8
+
+// CHECK: vmovq %xmm20, %rax
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x7e,0xe0]
+ vmovq %xmm20, %rax
+
+// CHECK: vmovq %xmm20, %rax
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x7e,0xe0]
+ vmovq %xmm20, %rax
+
+// CHECK: vmovq %xmm20, %r8
+// CHECK: encoding: [0x62,0xc1,0xfd,0x08,0x7e,0xe0]
+ vmovq %xmm20, %r8
+
+// CHECK: vmovq %xmm20, %r8
+// CHECK: encoding: [0x62,0xc1,0xfd,0x08,0x7e,0xe0]
+ vmovq %xmm20, %r8
+
+// CHECK: vmovq %xmm14, %xmm25
+// CHECK: encoding: [0x62,0x41,0xfe,0x08,0x7e,0xce]
+ vmovq %xmm14, %xmm25
+
+// CHECK: vmovq %xmm24, %xmm12
+// CHECK: encoding: [0x62,0x11,0xfe,0x08,0x7e,0xe0]
+ vmovq %xmm24, %xmm12
+
+// CHECK: vmovd %xmm5, %eax
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xe8]
+ vmovd %xmm5, %eax
+
+// CHECK: vmovd %xmm5, %eax
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xe8]
+ vmovd %xmm5, %eax
+
+// CHECK: vmovd %xmm5, %ebp
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xed]
+ vmovd %xmm5, %ebp
+
+// CHECK: vmovd %xmm5, %ebp
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xed]
+ vmovd %xmm5, %ebp
+
+// CHECK: vmovd %xmm5, %r13d
+// CHECK: encoding: [0xc4,0xc1,0x79,0x7e,0xed]
+ vmovd %xmm5, %r13d
+
+// CHECK: vmovd %xmm5, %r13d
+// CHECK: encoding: [0xc4,0xc1,0x79,0x7e,0xed]
+ vmovd %xmm5, %r13d
+
+// CHECK: vmovd %xmm28, %eax
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x7e,0xe0]
+ vmovd %xmm28, %eax
+
+// CHECK: vmovd %xmm28, %eax
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x7e,0xe0]
+ vmovd %xmm28, %eax
+
+// CHECK: vmovd %xmm28, %ebp
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x7e,0xe5]
+ vmovd %xmm28, %ebp
+
+// CHECK: vmovd %xmm28, %ebp
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x7e,0xe5]
+ vmovd %xmm28, %ebp
+
+// CHECK: vmovd %xmm28, %r13d
+// CHECK: encoding: [0x62,0x41,0x7d,0x08,0x7e,0xe5]
+ vmovd %xmm28, %r13d
+
+// CHECK: vmovd %xmm28, %r13d
+// CHECK: encoding: [0x62,0x41,0x7d,0x08,0x7e,0xe5]
+ vmovd %xmm28, %r13d
+
+// CHECK: vmovd %xmm14, %eax
+// CHECK: encoding: [0xc5,0x79,0x7e,0xf0]
+ vmovd %xmm14, %eax
+
+// CHECK: vmovd %xmm14, %eax
+// CHECK: encoding: [0xc5,0x79,0x7e,0xf0]
+ vmovd %xmm14, %eax
+
+// CHECK: vmovd %xmm14, %ebp
+// CHECK: encoding: [0xc5,0x79,0x7e,0xf5]
+ vmovd %xmm14, %ebp
+
+// CHECK: vmovd %xmm14, %ebp
+// CHECK: encoding: [0xc5,0x79,0x7e,0xf5]
+ vmovd %xmm14, %ebp
+
+// CHECK: vmovd %xmm14, %r13d
+// CHECK: encoding: [0xc4,0x41,0x79,0x7e,0xf5]
+ vmovd %xmm14, %r13d
+
+// CHECK: vmovd %xmm14, %r13d
+// CHECK: encoding: [0xc4,0x41,0x79,0x7e,0xf5]
+ vmovd %xmm14, %r13d
+
+// CHECK: vmovd %xmm1, %eax
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xc8]
+ vmovd %xmm1, %eax
+
+// CHECK: vmovd %xmm1, %eax
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xc8]
+ vmovd %xmm1, %eax
+
+// CHECK: vmovd %xmm1, %ebp
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xcd]
+ vmovd %xmm1, %ebp
+
+// CHECK: vmovd %xmm1, %ebp
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xcd]
+ vmovd %xmm1, %ebp
+
+// CHECK: vmovd %xmm1, %r13d
+// CHECK: encoding: [0xc4,0xc1,0x79,0x7e,0xcd]
+ vmovd %xmm1, %r13d
+
+// CHECK: vmovd %xmm1, %r13d
+// CHECK: encoding: [0xc4,0xc1,0x79,0x7e,0xcd]
+ vmovd %xmm1, %r13d
+
+// CHECK: vmovd %eax, %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0xd0]
+ vmovd %eax, %xmm26
+
+// CHECK: vmovd %ebp, %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0xd5]
+ vmovd %ebp, %xmm26
+
+// CHECK: vmovd %r13d, %xmm26
+// CHECK: encoding: [0x62,0x41,0x7d,0x08,0x6e,0xd5]
+ vmovd %r13d, %xmm26
+
+// CHECK: vmovd (%rcx), %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x11]
+ vmovd (%rcx), %xmm26
+
+// CHECK: vmovd 291(%rax,%r14,8), %xmm26
+// CHECK: encoding: [0x62,0x21,0x7d,0x08,0x6e,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovd 291(%rax,%r14,8), %xmm26
+
+// CHECK: vmovd 508(%rdx), %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x52,0x7f]
+ vmovd 508(%rdx), %xmm26
+
+// CHECK: vmovd 512(%rdx), %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x92,0x00,0x02,0x00,0x00]
+ vmovd 512(%rdx), %xmm26
+
+// CHECK: vmovd -512(%rdx), %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x52,0x80]
+ vmovd -512(%rdx), %xmm26
+
+// CHECK: vmovd -516(%rdx), %xmm26
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x92,0xfc,0xfd,0xff,0xff]
+ vmovd -516(%rdx), %xmm26
+
+// CHECK: vmovd %xmm5, (%rcx)
+// CHECK: encoding: [0xc5,0xf9,0x7e,0x29]
+ vmovd %xmm5, (%rcx)
+
+// CHECK: vmovd %xmm5, 291(%rax,%r14,8)
+// CHECK: encoding: [0xc4,0xa1,0x79,0x7e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovd %xmm5, 291(%rax,%r14,8)
+
+// CHECK: vmovd %xmm5, 508(%rdx)
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0xfc,0x01,0x00,0x00]
+ vmovd %xmm5, 508(%rdx)
+
+// CHECK: vmovd %xmm5, 512(%rdx)
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0x00,0x02,0x00,0x00]
+ vmovd %xmm5, 512(%rdx)
+
+// CHECK: vmovd %xmm5, -512(%rdx)
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0x00,0xfe,0xff,0xff]
+ vmovd %xmm5, -512(%rdx)
+
+// CHECK: vmovd %xmm5, -516(%rdx)
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0xfc,0xfd,0xff,0xff]
+ vmovd %xmm5, -516(%rdx)
+
OpenPOWER on IntegriCloud