1// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512dq  --show-encoding %s | FileCheck %s
2
3// CHECK: vpmullq %zmm18, %zmm24, %zmm18
4// CHECK:  encoding: [0x62,0xa2,0xbd,0x40,0x40,0xd2]
5          vpmullq %zmm18, %zmm24, %zmm18
6
7// CHECK: vpmullq %zmm18, %zmm24, %zmm18 {%k2}
8// CHECK:  encoding: [0x62,0xa2,0xbd,0x42,0x40,0xd2]
9          vpmullq %zmm18, %zmm24, %zmm18 {%k2}
10
11// CHECK: vpmullq %zmm18, %zmm24, %zmm18 {%k2} {z}
12// CHECK:  encoding: [0x62,0xa2,0xbd,0xc2,0x40,0xd2]
13          vpmullq %zmm18, %zmm24, %zmm18 {%k2} {z}
14
15// CHECK: vpmullq (%rcx), %zmm24, %zmm18
16// CHECK:  encoding: [0x62,0xe2,0xbd,0x40,0x40,0x11]
17          vpmullq (%rcx), %zmm24, %zmm18
18
19// CHECK: vpmullq 291(%rax,%r14,8), %zmm24, %zmm18
20// CHECK:  encoding: [0x62,0xa2,0xbd,0x40,0x40,0x94,0xf0,0x23,0x01,0x00,0x00]
21          vpmullq 291(%rax,%r14,8), %zmm24, %zmm18
22
23// CHECK: vpmullq (%rcx){1to8}, %zmm24, %zmm18
24// CHECK:  encoding: [0x62,0xe2,0xbd,0x50,0x40,0x11]
25          vpmullq (%rcx){1to8}, %zmm24, %zmm18
26
27// CHECK: vpmullq 8128(%rdx), %zmm24, %zmm18
28// CHECK:  encoding: [0x62,0xe2,0xbd,0x40,0x40,0x52,0x7f]
29          vpmullq 8128(%rdx), %zmm24, %zmm18
30
31// CHECK: vpmullq 8192(%rdx), %zmm24, %zmm18
32// CHECK:  encoding: [0x62,0xe2,0xbd,0x40,0x40,0x92,0x00,0x20,0x00,0x00]
33          vpmullq 8192(%rdx), %zmm24, %zmm18
34
35// CHECK: vpmullq -8192(%rdx), %zmm24, %zmm18
36// CHECK:  encoding: [0x62,0xe2,0xbd,0x40,0x40,0x52,0x80]
37          vpmullq -8192(%rdx), %zmm24, %zmm18
38
39// CHECK: vpmullq -8256(%rdx), %zmm24, %zmm18
40// CHECK:  encoding: [0x62,0xe2,0xbd,0x40,0x40,0x92,0xc0,0xdf,0xff,0xff]
41          vpmullq -8256(%rdx), %zmm24, %zmm18
42
43// CHECK: vpmullq 1016(%rdx){1to8}, %zmm24, %zmm18
44// CHECK:  encoding: [0x62,0xe2,0xbd,0x50,0x40,0x52,0x7f]
45          vpmullq 1016(%rdx){1to8}, %zmm24, %zmm18
46
47// CHECK: vpmullq 1024(%rdx){1to8}, %zmm24, %zmm18
48// CHECK:  encoding: [0x62,0xe2,0xbd,0x50,0x40,0x92,0x00,0x04,0x00,0x00]
49          vpmullq 1024(%rdx){1to8}, %zmm24, %zmm18
50
51// CHECK: vpmullq -1024(%rdx){1to8}, %zmm24, %zmm18
52// CHECK:  encoding: [0x62,0xe2,0xbd,0x50,0x40,0x52,0x80]
53          vpmullq -1024(%rdx){1to8}, %zmm24, %zmm18
54
55// CHECK: vpmullq -1032(%rdx){1to8}, %zmm24, %zmm18
56// CHECK:  encoding: [0x62,0xe2,0xbd,0x50,0x40,0x92,0xf8,0xfb,0xff,0xff]
57          vpmullq -1032(%rdx){1to8}, %zmm24, %zmm18
58
59// CHECK: kandb  %k6, %k5, %k2
60// CHECK:  encoding: [0xc5,0xd5,0x41,0xd6]
61          kandb  %k6, %k5, %k2
62
63// CHECK: kandnb %k4, %k6, %k5
64// CHECK:  encoding: [0xc5,0xcd,0x42,0xec]
65          kandnb %k4, %k6, %k5
66
67// CHECK: korb   %k5, %k4, %k4
68// CHECK:  encoding: [0xc5,0xdd,0x45,0xe5]
69          korb   %k5, %k4, %k4
70
71// CHECK: kxnorb %k7, %k6, %k4
72// CHECK:  encoding: [0xc5,0xcd,0x46,0xe7]
73          kxnorb %k7, %k6, %k4
74
75// CHECK: kxorb  %k5, %k6, %k4
76// CHECK:  encoding: [0xc5,0xcd,0x47,0xe5]
77          kxorb  %k5, %k6, %k4
78
79// CHECK: knotb  %k4, %k5
80// CHECK:  encoding: [0xc5,0xf9,0x44,0xec]
81          knotb  %k4, %k5
82
83// CHECK: knotb  %k3, %k3
84// CHECK:  encoding: [0xc5,0xf9,0x44,0xdb]
85          knotb  %k3, %k3
86
87// CHECK: kmovb  %k3, %k5
88// CHECK:  encoding: [0xc5,0xf9,0x90,0xeb]
89          kmovb  %k3, %k5
90
91// CHECK: kmovb  (%rcx), %k5
92// CHECK:  encoding: [0xc5,0xf9,0x90,0x29]
93          kmovb  (%rcx), %k5
94
95// CHECK: kmovb  4660(%rax,%r14,8), %k5
96// CHECK:  encoding: [0xc4,0xa1,0x79,0x90,0xac,0xf0,0x34,0x12,0x00,0x00]
97          kmovb  4660(%rax,%r14,8), %k5
98
99// CHECK: kmovb  %k2, (%rcx)
100// CHECK:  encoding: [0xc5,0xf9,0x91,0x11]
101          kmovb  %k2, (%rcx)
102
103// CHECK: kmovb  %k2, 4660(%rax,%r14,8)
104// CHECK:  encoding: [0xc4,0xa1,0x79,0x91,0x94,0xf0,0x34,0x12,0x00,0x00]
105          kmovb  %k2, 4660(%rax,%r14,8)
106
107// CHECK: kmovb  %eax, %k2
108// CHECK:  encoding: [0xc5,0xf9,0x92,0xd0]
109          kmovb  %eax, %k2
110
111// CHECK: kmovb  %ebp, %k2
112// CHECK:  encoding: [0xc5,0xf9,0x92,0xd5]
113          kmovb  %ebp, %k2
114
115// CHECK: kmovb  %r13d, %k2
116// CHECK:  encoding: [0xc4,0xc1,0x79,0x92,0xd5]
117          kmovb  %r13d, %k2
118
119// CHECK: kmovb  %k3, %eax
120// CHECK:  encoding: [0xc5,0xf9,0x93,0xc3]
121          kmovb  %k3, %eax
122
123// CHECK: kmovb  %k3, %ebp
124// CHECK:  encoding: [0xc5,0xf9,0x93,0xeb]
125          kmovb  %k3, %ebp
126
127// CHECK: kmovb  %k3, %r13d
128// CHECK:  encoding: [0xc5,0x79,0x93,0xeb]
129          kmovb  %k3, %r13d
130