1# Check 32bit AVX512BITALG instructions
2
3	.allow_index_reg
4	.text
5_start:
6	vpshufbitqmb	%zmm4, %zmm5, %k5	 # AVX512BITALG
7	vpshufbitqmb	%zmm4, %zmm5, %k5{%k7}	 # AVX512BITALG
8	vpshufbitqmb	-123456(%esp,%esi,8), %zmm5, %k5	 # AVX512BITALG
9	vpshufbitqmb	8128(%edx), %zmm5, %k5	 # AVX512BITALG Disp8
10
11	vpopcntb	%zmm5, %zmm6	 # AVX512BITALG
12	vpopcntb	%zmm5, %zmm6{%k7}	 # AVX512BITALG
13	vpopcntb	%zmm5, %zmm6{%k7}{z}	 # AVX512BITALG
14	vpopcntb	-123456(%esp,%esi,8), %zmm6	 # AVX512BITALG
15	vpopcntb	8128(%edx), %zmm6	 # AVX512BITALG Disp8
16
17	vpopcntw	%zmm5, %zmm6	 # AVX512BITALG
18	vpopcntw	%zmm5, %zmm6{%k7}	 # AVX512BITALG
19	vpopcntw	%zmm5, %zmm6{%k7}{z}	 # AVX512BITALG
20	vpopcntw	-123456(%esp,%esi,8), %zmm6	 # AVX512BITALG
21	vpopcntw	8128(%edx), %zmm6	 # AVX512BITALG Disp8
22	vpopcntd	%zmm5, %zmm6	 # AVX512BITALG
23
24	vpopcntd	%zmm5, %zmm6{%k7}	 # AVX512BITALG
25	vpopcntd	%zmm5, %zmm6{%k7}{z}	 # AVX512BITALG
26	vpopcntd	-123456(%esp,%esi,8), %zmm6	 # AVX512BITALG
27	vpopcntd	8128(%edx), %zmm6	 # AVX512BITALG Disp8
28	vpopcntd	508(%edx){1to16}, %zmm6	 # AVX512BITALG Disp8
29	vpopcntq	%zmm5, %zmm6	 # AVX512BITALG
30
31	vpopcntq	%zmm5, %zmm6{%k7}	 # AVX512BITALG
32	vpopcntq	%zmm5, %zmm6{%k7}{z}	 # AVX512BITALG
33	vpopcntq	-123456(%esp,%esi,8), %zmm6	 # AVX512BITALG
34	vpopcntq	8128(%edx), %zmm6	 # AVX512BITALG Disp8
35	vpopcntq	1016(%edx){1to8}, %zmm6	 # AVX512BITALG Disp8
36
37	.intel_syntax noprefix
38	vpshufbitqmb	k5, zmm5, zmm4	 # AVX512BITALG
39	vpshufbitqmb	k5{k7}, zmm5, zmm4	 # AVX512BITALG
40	vpshufbitqmb	k5, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512BITALG
41	vpshufbitqmb	k5, zmm5, ZMMWORD PTR [edx+8128]	 # AVX512BITALG Disp8
42	vpopcntb	zmm6, zmm5	 # AVX512BITALG
43
44	vpopcntb	zmm6{k7}, zmm5	 # AVX512BITALG
45	vpopcntb	zmm6{k7}{z}, zmm5	 # AVX512BITALG
46	vpopcntb	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512BITALG
47	vpopcntb	zmm6, ZMMWORD PTR [edx+8128]	 # AVX512BITALG Disp8
48	vpopcntw	zmm6, zmm5	 # AVX512BITALG
49
50	vpopcntw	zmm6{k7}, zmm5	 # AVX512BITALG
51	vpopcntw	zmm6{k7}{z}, zmm5	 # AVX512BITALG
52	vpopcntw	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512BITALG
53	vpopcntw	zmm6, ZMMWORD PTR [edx+8128]	 # AVX512BITALG Disp8
54	vpopcntd	zmm6, zmm5	 # AVX512BITALG
55
56	vpopcntd	zmm6{k7}, zmm5	 # AVX512BITALG
57	vpopcntd	zmm6{k7}{z}, zmm5	 # AVX512BITALG
58	vpopcntd	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512BITALG
59	vpopcntd	zmm6, ZMMWORD PTR [edx+8128]	 # AVX512BITALG Disp8
60	vpopcntd	zmm6, [edx+508]{1to16}	 # AVX512BITALG Disp8
61	vpopcntq	zmm6, zmm5	 # AVX512BITALG
62
63	vpopcntq	zmm6{k7}, zmm5	 # AVX512BITALG
64	vpopcntq	zmm6{k7}{z}, zmm5	 # AVX512BITALG
65	vpopcntq	zmm6, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512BITALG
66	vpopcntq	zmm6, ZMMWORD PTR [edx+8128]	 # AVX512BITALG Disp8
67	vpopcntq	zmm6, [edx+1016]{1to8}	 # AVX512BITALG Disp8
68