Index: lib/Target/X86/X86InstrAVX512.td =================================================================== --- lib/Target/X86/X86InstrAVX512.td +++ lib/Target/X86/X86InstrAVX512.td @@ -3084,7 +3084,7 @@ (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}", Index: test/MC/X86/avx512-encodings.s =================================================================== --- test/MC/X86/avx512-encodings.s +++ test/MC/X86/avx512-encodings.s @@ -17951,4 +17951,349 @@ // 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) +