[InstCombine] Signed saturation patterns
[llvm-core.git] / test / MC / X86 / avx512vl_bitalg-encoding.s
blob6e5892c4ef001e6a7ddfbba7f97d740036197c53
1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s
3 // CHECK: vpopcntb %xmm23, %xmm21
4 // CHECK: encoding: [0x62,0xa2,0x7d,0x08,0x54,0xef]
5 vpopcntb %xmm23, %xmm21
7 // CHECK: vpopcntw %xmm23, %xmm21
8 // CHECK: encoding: [0x62,0xa2,0xfd,0x08,0x54,0xef]
9 vpopcntw %xmm23, %xmm21
11 // CHECK: vpopcntb %xmm3, %xmm1 {%k2}
12 // CHECK: encoding: [0x62,0xf2,0x7d,0x0a,0x54,0xcb]
13 vpopcntb %xmm3, %xmm1 {%k2}
15 // CHECK: vpopcntw %xmm3, %xmm1 {%k2}
16 // CHECK: encoding: [0x62,0xf2,0xfd,0x0a,0x54,0xcb]
17 vpopcntw %xmm3, %xmm1 {%k2}
19 // CHECK: vpopcntb (%rcx), %xmm1
20 // CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x09]
21 vpopcntb (%rcx), %xmm1
23 // CHECK: vpopcntb -64(%rsp), %xmm1
24 // CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0xfc]
25 vpopcntb -64(%rsp), %xmm1
27 // CHECK: vpopcntb 64(%rsp), %xmm1
28 // CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0x04]
29 vpopcntb 64(%rsp), %xmm1
31 // CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm1
32 // CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]
33 vpopcntb 268435456(%rcx,%r14,8), %xmm1
35 // CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm1
36 // CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]
37 vpopcntb -536870912(%rcx,%r14,8), %xmm1
39 // CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm1
40 // CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]
41 vpopcntb -536870910(%rcx,%r14,8), %xmm1
43 // CHECK: vpopcntw (%rcx), %xmm1
44 // CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x09]
45 vpopcntw (%rcx), %xmm1
47 // CHECK: vpopcntw -64(%rsp), %xmm1
48 // CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0xfc]
49 vpopcntw -64(%rsp), %xmm1
51 // CHECK: vpopcntw 64(%rsp), %xmm1
52 // CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0x04]
53 vpopcntw 64(%rsp), %xmm1
55 // CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm1
56 // CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]
57 vpopcntw 268435456(%rcx,%r14,8), %xmm1
59 // CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm1
60 // CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]
61 vpopcntw -536870912(%rcx,%r14,8), %xmm1
63 // CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm1
64 // CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]
65 vpopcntw -536870910(%rcx,%r14,8), %xmm1
67 // CHECK: vpopcntb (%rcx), %xmm21 {%k2}
68 // CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x29]
69 vpopcntb (%rcx), %xmm21 {%k2}
71 // CHECK: vpopcntb -64(%rsp), %xmm21 {%k2}
72 // CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0xfc]
73 vpopcntb -64(%rsp), %xmm21 {%k2}
75 // CHECK: vpopcntb 64(%rsp), %xmm21 {%k2}
76 // CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0x04]
77 vpopcntb 64(%rsp), %xmm21 {%k2}
79 // CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2}
80 // CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]
81 vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2}
83 // CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2}
84 // CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]
85 vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2}
87 // CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2}
88 // CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]
89 vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2}
91 // CHECK: vpopcntw (%rcx), %xmm21 {%k2}
92 // CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x29]
93 vpopcntw (%rcx), %xmm21 {%k2}
95 // CHECK: vpopcntw -64(%rsp), %xmm21 {%k2}
96 // CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0xfc]
97 vpopcntw -64(%rsp), %xmm21 {%k2}
99 // CHECK: vpopcntw 64(%rsp), %xmm21 {%k2}
100 // CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0x04]
101 vpopcntw 64(%rsp), %xmm21 {%k2}
103 // CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2}
104 // CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]
105 vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2}
107 // CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2}
108 // CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]
109 vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2}
111 // CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2}
112 // CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]
113 vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2}
115 // CHECK: vpopcntb %ymm23, %ymm21
116 // CHECK: encoding: [0x62,0xa2,0x7d,0x28,0x54,0xef]
117 vpopcntb %ymm23, %ymm21
119 // CHECK: vpopcntw %ymm23, %ymm21
120 // CHECK: encoding: [0x62,0xa2,0xfd,0x28,0x54,0xef]
121 vpopcntw %ymm23, %ymm21
123 // CHECK: vpopcntb %ymm3, %ymm1 {%k2}
124 // CHECK: encoding: [0x62,0xf2,0x7d,0x2a,0x54,0xcb]
125 vpopcntb %ymm3, %ymm1 {%k2}
127 // CHECK: vpopcntw %ymm3, %ymm1 {%k2}
128 // CHECK: encoding: [0x62,0xf2,0xfd,0x2a,0x54,0xcb]
129 vpopcntw %ymm3, %ymm1 {%k2}
131 // CHECK: vpopcntb (%rcx), %ymm1
132 // CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x09]
133 vpopcntb (%rcx), %ymm1
135 // CHECK: vpopcntb -128(%rsp), %ymm1
136 // CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0xfc]
137 vpopcntb -128(%rsp), %ymm1
139 // CHECK: vpopcntb 128(%rsp), %ymm1
140 // CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0x04]
141 vpopcntb 128(%rsp), %ymm1
143 // CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm1
144 // CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]
145 vpopcntb 268435456(%rcx,%r14,8), %ymm1
147 // CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm1
148 // CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]
149 vpopcntb -536870912(%rcx,%r14,8), %ymm1
151 // CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm1
152 // CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]
153 vpopcntb -536870910(%rcx,%r14,8), %ymm1
155 // CHECK: vpopcntw (%rcx), %ymm1
156 // CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x09]
157 vpopcntw (%rcx), %ymm1
159 // CHECK: vpopcntw -128(%rsp), %ymm1
160 // CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0xfc]
161 vpopcntw -128(%rsp), %ymm1
163 // CHECK: vpopcntw 128(%rsp), %ymm1
164 // CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0x04]
165 vpopcntw 128(%rsp), %ymm1
167 // CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm1
168 // CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]
169 vpopcntw 268435456(%rcx,%r14,8), %ymm1
171 // CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm1
172 // CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]
173 vpopcntw -536870912(%rcx,%r14,8), %ymm1
175 // CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm1
176 // CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]
177 vpopcntw -536870910(%rcx,%r14,8), %ymm1
179 // CHECK: vpopcntb (%rcx), %ymm21 {%k2}
180 // CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x29]
181 vpopcntb (%rcx), %ymm21 {%k2}
183 // CHECK: vpopcntb -128(%rsp), %ymm21 {%k2}
184 // CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0xfc]
185 vpopcntb -128(%rsp), %ymm21 {%k2}
187 // CHECK: vpopcntb 128(%rsp), %ymm21 {%k2}
188 // CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0x04]
189 vpopcntb 128(%rsp), %ymm21 {%k2}
191 // CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2}
192 // CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]
193 vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2}
195 // CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2}
196 // CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]
197 vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2}
199 // CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2}
200 // CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]
201 vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2}
203 // CHECK: vpopcntw (%rcx), %ymm21 {%k2}
204 // CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x29]
205 vpopcntw (%rcx), %ymm21 {%k2}
207 // CHECK: vpopcntw -128(%rsp), %ymm21 {%k2}
208 // CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0xfc]
209 vpopcntw -128(%rsp), %ymm21 {%k2}
211 // CHECK: vpopcntw 128(%rsp), %ymm21 {%k2}
212 // CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0x04]
213 vpopcntw 128(%rsp), %ymm21 {%k2}
215 // CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2}
216 // CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]
217 vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2}
219 // CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2}
220 // CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]
221 vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2}
223 // CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2}
224 // CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]
225 vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2}
227 // CHECK: vpshufbitqmb %xmm2, %xmm23, %k1
228 // CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0xca]
229 vpshufbitqmb %xmm2, %xmm23, %k1
231 // CHECK: vpshufbitqmb %xmm2, %xmm23, %k1 {%k2}
232 // CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0xca]
233 vpshufbitqmb %xmm2, %xmm23, %k1 {%k2}
235 // CHECK: vpshufbitqmb (%rcx), %xmm23, %k1
236 // CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x09]
237 vpshufbitqmb (%rcx), %xmm23, %k1
239 // CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1
240 // CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0xfc]
241 vpshufbitqmb -64(%rsp), %xmm23, %k1
243 // CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1
244 // CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0x04]
245 vpshufbitqmb 64(%rsp), %xmm23, %k1
247 // CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1
248 // CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]
249 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1
251 // CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1
252 // CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]
253 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1
255 // CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1
256 // CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]
257 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1
259 // CHECK: vpshufbitqmb (%rcx), %xmm23, %k1 {%k2}
260 // CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x09]
261 vpshufbitqmb (%rcx), %xmm23, %k1 {%k2}
263 // CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2}
264 // CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0xfc]
265 vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2}
267 // CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2}
268 // CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0x04]
269 vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2}
271 // CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2}
272 // CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]
273 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2}
275 // CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2}
276 // CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]
277 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2}
279 // CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2}
280 // CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]
281 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2}
283 // CHECK: vpshufbitqmb %ymm2, %ymm23, %k1
284 // CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0xca]
285 vpshufbitqmb %ymm2, %ymm23, %k1
287 // CHECK: vpshufbitqmb %ymm2, %ymm23, %k1 {%k2}
288 // CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0xca]
289 vpshufbitqmb %ymm2, %ymm23, %k1 {%k2}
291 // CHECK: vpshufbitqmb (%rcx), %ymm23, %k1
292 // CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x09]
293 vpshufbitqmb (%rcx), %ymm23, %k1
295 // CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1
296 // CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0xfc]
297 vpshufbitqmb -128(%rsp), %ymm23, %k1
299 // CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1
300 // CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0x04]
301 vpshufbitqmb 128(%rsp), %ymm23, %k1
303 // CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1
304 // CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]
305 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1
307 // CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1
308 // CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]
309 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1
311 // CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1
312 // CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]
313 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1
315 // CHECK: vpshufbitqmb (%rcx), %ymm23, %k1 {%k2}
316 // CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x09]
317 vpshufbitqmb (%rcx), %ymm23, %k1 {%k2}
319 // CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2}
320 // CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0xfc]
321 vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2}
323 // CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2}
324 // CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0x04]
325 vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2}
327 // CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2}
328 // CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]
329 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2}
331 // CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2}
332 // CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]
333 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2}
335 // CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2}
336 // CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]
337 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2}