AVX512: add encoding tests for vmovq/d instructions.
[oota-llvm.git] / test / MC / X86 / avx512-encodings.s
index 3453f3df07aa71e550d62f241f57a3e382ab55b5..dc0ee7e671b22636806856e3ac69d019af0e6d8e 100644 (file)
@@ -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)
+