1# Check 64bit AVX512_VPOPCNTDQ instructions
2
3	.allow_index_reg
4	.text
5_start:
6	vpopcntd	%zmm29, %zmm30	 # AVX512_VPOPCNTDQ
7	vpopcntd	%zmm29, %zmm30{%k7}	 # AVX512_VPOPCNTDQ
8	vpopcntd	%zmm29, %zmm30{%k7}{z}	 # AVX512_VPOPCNTDQ
9	vpopcntd	(%rcx), %zmm30	 # AVX512_VPOPCNTDQ
10	vpopcntd	0x123(%rax,%r14,8), %zmm30	 # AVX512_VPOPCNTDQ
11	vpopcntd	(%rcx){1to16}, %zmm30	 # AVX512_VPOPCNTDQ
12	vpopcntd	8128(%rdx), %zmm30	 # AVX512_VPOPCNTDQ Disp8
13	vpopcntd	8192(%rdx), %zmm30	 # AVX512_VPOPCNTDQ
14	vpopcntd	-8192(%rdx), %zmm30	 # AVX512_VPOPCNTDQ Disp8
15	vpopcntd	-8256(%rdx), %zmm30	 # AVX512_VPOPCNTDQ
16	vpopcntd	508(%rdx){1to16}, %zmm30	 # AVX512_VPOPCNTDQ Disp8
17	vpopcntd	512(%rdx){1to16}, %zmm30	 # AVX512_VPOPCNTDQ
18	vpopcntd	-512(%rdx){1to16}, %zmm30	 # AVX512_VPOPCNTDQ Disp8
19	vpopcntd	-516(%rdx){1to16}, %zmm30	 # AVX512_VPOPCNTDQ
20	vpopcntq	%zmm29, %zmm30	 # AVX512_VPOPCNTDQ
21	vpopcntq	%zmm29, %zmm30{%k7}	 # AVX512_VPOPCNTDQ
22	vpopcntq	%zmm29, %zmm30{%k7}{z}	 # AVX512_VPOPCNTDQ
23	vpopcntq	(%rcx), %zmm30	 # AVX512_VPOPCNTDQ
24	vpopcntq	0x123(%rax,%r14,8), %zmm30	 # AVX512_VPOPCNTDQ
25	vpopcntq	(%rcx){1to8}, %zmm30	 # AVX512_VPOPCNTDQ
26	vpopcntq	8128(%rdx), %zmm30	 # AVX512_VPOPCNTDQ Disp8
27	vpopcntq	8192(%rdx), %zmm30	 # AVX512_VPOPCNTDQ
28	vpopcntq	-8192(%rdx), %zmm30	 # AVX512_VPOPCNTDQ Disp8
29	vpopcntq	-8256(%rdx), %zmm30	 # AVX512_VPOPCNTDQ
30	vpopcntq	1016(%rdx){1to8}, %zmm30	 # AVX512_VPOPCNTDQ Disp8
31	vpopcntq	1024(%rdx){1to8}, %zmm30	 # AVX512_VPOPCNTDQ
32	vpopcntq	-1024(%rdx){1to8}, %zmm30	 # AVX512_VPOPCNTDQ Disp8
33	vpopcntq	-1032(%rdx){1to8}, %zmm30	 # AVX512_VPOPCNTDQ
34
35	.intel_syntax noprefix
36	vpopcntd	zmm30, zmm29	 # AVX512_VPOPCNTDQ
37	vpopcntd	zmm30{k7}, zmm29	 # AVX512_VPOPCNTDQ
38	vpopcntd	zmm30{k7}{z}, zmm29	 # AVX512_VPOPCNTDQ
39	vpopcntd	zmm30, ZMMWORD PTR [rcx]	 # AVX512_VPOPCNTDQ
40	vpopcntd	zmm30, ZMMWORD PTR [rax+r14*8+0x1234]	 # AVX512_VPOPCNTDQ
41	vpopcntd	zmm30, [rcx]{1to16}	 # AVX512_VPOPCNTDQ
42	vpopcntd	zmm30, ZMMWORD PTR [rdx+8128]	 # AVX512_VPOPCNTDQ Disp8
43	vpopcntd	zmm30, ZMMWORD PTR [rdx+8192]	 # AVX512_VPOPCNTDQ
44	vpopcntd	zmm30, ZMMWORD PTR [rdx-8192]	 # AVX512_VPOPCNTDQ Disp8
45	vpopcntd	zmm30, ZMMWORD PTR [rdx-8256]	 # AVX512_VPOPCNTDQ
46	vpopcntd	zmm30, [rdx+508]{1to16}	 # AVX512_VPOPCNTDQ Disp8
47	vpopcntd	zmm30, [rdx+512]{1to16}	 # AVX512_VPOPCNTDQ
48	vpopcntd	zmm30, [rdx-512]{1to16}	 # AVX512_VPOPCNTDQ Disp8
49	vpopcntd	zmm30, [rdx-516]{1to16}	 # AVX512_VPOPCNTDQ
50	vpopcntq	zmm30, zmm29	 # AVX512_VPOPCNTDQ
51	vpopcntq	zmm30{k7}, zmm29	 # AVX512_VPOPCNTDQ
52	vpopcntq	zmm30{k7}{z}, zmm29	 # AVX512_VPOPCNTDQ
53	vpopcntq	zmm30, ZMMWORD PTR [rcx]	 # AVX512_VPOPCNTDQ
54	vpopcntq	zmm30, ZMMWORD PTR [rax+r14*8+0x1234]	 # AVX512_VPOPCNTDQ
55	vpopcntq	zmm30, [rcx]{1to8}	 # AVX512_VPOPCNTDQ
56	vpopcntq	zmm30, ZMMWORD PTR [rdx+8128]	 # AVX512_VPOPCNTDQ Disp8
57	vpopcntq	zmm30, ZMMWORD PTR [rdx+8192]	 # AVX512_VPOPCNTDQ
58	vpopcntq	zmm30, ZMMWORD PTR [rdx-8192]	 # AVX512_VPOPCNTDQ Disp8
59	vpopcntq	zmm30, ZMMWORD PTR [rdx-8256]	 # AVX512_VPOPCNTDQ
60	vpopcntq	zmm30, [rdx+1016]{1to8}	 # AVX512_VPOPCNTDQ Disp8
61	vpopcntq	zmm30, [rdx+1024]{1to8}	 # AVX512_VPOPCNTDQ
62	vpopcntq	zmm30, [rdx-1024]{1to8}	 # AVX512_VPOPCNTDQ Disp8
63	vpopcntq	zmm30, [rdx-1032]{1to8}	 # AVX512_VPOPCNTDQ
64