From e8f80e52615b08317dee675ee6b26a04a5be6256 Mon Sep 17 00:00:00 2001 From: Igor Breger Date: Sun, 29 Nov 2015 07:41:26 +0000 Subject: [PATCH] AVX512:Implemented encoding for the vmovq.s instruction. Differential Revision: http://reviews.llvm.org/D14810 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254248 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrAVX512.td | 5 +++++ test/MC/X86/avx512-encodings.s | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 92126ab39c1..5ba6075d283 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -2913,6 +2913,11 @@ def VMOVPQIto64Zmr : I<0xD6, MRMDestMem, (outs), EVEX, PD, VEX_LIG, VEX_W, EVEX_CD8<64, CD8VT1>, Sched<[WriteStore]>, Requires<[HasAVX512, In64BitMode]>; +def VMOV64toPQIZrr_REV : AVX512BI<0xD6, MRMDestReg, (outs VR128X:$dst), + (ins VR128X:$src), + "vmovq.s\t{$src, $dst|$dst, $src}",[]>, + EVEX, VEX_W, VEX_LIG; + // Move Scalar Single to Double Int // let isCodeGenOnly = 1 in { diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index 818b647b917..7ab94e72961 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -19077,3 +19077,19 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2 // CHECK: encoding: [0x62,0x81,0x7c,0xce,0x11,0xe3] vmovups.s %zmm20, %zmm27 {%k6} {z} +// CHECK: vmovq.s %xmm9, %xmm29 +// CHECK: encoding: [0x62,0x11,0xfd,0x08,0xd6,0xcd] + vmovq.s %xmm9, %xmm29 + +// CHECK: vmovq.s %xmm5, %xmm18 +// CHECK: encoding: [0x62,0xb1,0xfd,0x08,0xd6,0xea] + vmovq.s %xmm5, %xmm18 + +// CHECK: vmovq.s %xmm14, %xmm25 +// CHECK: encoding: [0x62,0x11,0xfd,0x08,0xd6,0xf1] + vmovq.s %xmm14, %xmm25 + +// CHECK: vmovq.s %xmm24, %xmm12 +// CHECK: encoding: [0x62,0x41,0xfd,0x08,0xd6,0xc4] + vmovq.s %xmm24, %xmm12 + -- 2.34.1