1# Check 32bit AVX512VBMI instructions
2
3	.allow_index_reg
4	.text
5_start:
6	vpermb	%zmm4, %zmm5, %zmm6	 # AVX512VBMI
7	vpermb	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI
8	vpermb	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI
9	vpermb	(%ecx), %zmm5, %zmm6	 # AVX512VBMI
10	vpermb	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI
11	vpermb	8128(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
12	vpermb	8192(%edx), %zmm5, %zmm6	 # AVX512VBMI
13	vpermb	-8192(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
14	vpermb	-8256(%edx), %zmm5, %zmm6	 # AVX512VBMI
15	vpermi2b	%zmm4, %zmm5, %zmm6	 # AVX512VBMI
16	vpermi2b	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI
17	vpermi2b	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI
18	vpermi2b	(%ecx), %zmm5, %zmm6	 # AVX512VBMI
19	vpermi2b	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI
20	vpermi2b	8128(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
21	vpermi2b	8192(%edx), %zmm5, %zmm6	 # AVX512VBMI
22	vpermi2b	-8192(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
23	vpermi2b	-8256(%edx), %zmm5, %zmm6	 # AVX512VBMI
24	vpermt2b	%zmm4, %zmm5, %zmm6	 # AVX512VBMI
25	vpermt2b	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI
26	vpermt2b	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI
27	vpermt2b	(%ecx), %zmm5, %zmm6	 # AVX512VBMI
28	vpermt2b	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI
29	vpermt2b	8128(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
30	vpermt2b	8192(%edx), %zmm5, %zmm6	 # AVX512VBMI
31	vpermt2b	-8192(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
32	vpermt2b	-8256(%edx), %zmm5, %zmm6	 # AVX512VBMI
33	vpmultishiftqb	%zmm4, %zmm5, %zmm6	 # AVX512VBMI
34	vpmultishiftqb	%zmm4, %zmm5, %zmm6{%k7}	 # AVX512VBMI
35	vpmultishiftqb	%zmm4, %zmm5, %zmm6{%k7}{z}	 # AVX512VBMI
36	vpmultishiftqb	(%ecx), %zmm5, %zmm6	 # AVX512VBMI
37	vpmultishiftqb	-123456(%esp,%esi,8), %zmm5, %zmm6	 # AVX512VBMI
38	vpmultishiftqb	(%eax){1to8}, %zmm5, %zmm6	 # AVX512VBMI
39	vpmultishiftqb	8128(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
40	vpmultishiftqb	8192(%edx), %zmm5, %zmm6	 # AVX512VBMI
41	vpmultishiftqb	-8192(%edx), %zmm5, %zmm6	 # AVX512VBMI Disp8
42	vpmultishiftqb	-8256(%edx), %zmm5, %zmm6	 # AVX512VBMI
43	vpmultishiftqb	1016(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI Disp8
44	vpmultishiftqb	1024(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI
45	vpmultishiftqb	-1024(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI Disp8
46	vpmultishiftqb	-1032(%edx){1to8}, %zmm5, %zmm6	 # AVX512VBMI
47
48	.intel_syntax noprefix
49	vpermb	zmm6, zmm5, zmm4	 # AVX512VBMI
50	vpermb	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI
51	vpermb	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI
52	vpermb	zmm6, zmm5, ZMMWORD PTR [ecx]	 # AVX512VBMI
53	vpermb	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI
54	vpermb	zmm6, zmm5, ZMMWORD PTR [edx+8128]	 # AVX512VBMI Disp8
55	vpermb	zmm6, zmm5, ZMMWORD PTR [edx+8192]	 # AVX512VBMI
56	vpermb	zmm6, zmm5, ZMMWORD PTR [edx-8192]	 # AVX512VBMI Disp8
57	vpermb	zmm6, zmm5, ZMMWORD PTR [edx-8256]	 # AVX512VBMI
58	vpermi2b	zmm6, zmm5, zmm4	 # AVX512VBMI
59	vpermi2b	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI
60	vpermi2b	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI
61	vpermi2b	zmm6, zmm5, ZMMWORD PTR [ecx]	 # AVX512VBMI
62	vpermi2b	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI
63	vpermi2b	zmm6, zmm5, ZMMWORD PTR [edx+8128]	 # AVX512VBMI Disp8
64	vpermi2b	zmm6, zmm5, ZMMWORD PTR [edx+8192]	 # AVX512VBMI
65	vpermi2b	zmm6, zmm5, ZMMWORD PTR [edx-8192]	 # AVX512VBMI Disp8
66	vpermi2b	zmm6, zmm5, ZMMWORD PTR [edx-8256]	 # AVX512VBMI
67	vpermt2b	zmm6, zmm5, zmm4	 # AVX512VBMI
68	vpermt2b	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI
69	vpermt2b	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI
70	vpermt2b	zmm6, zmm5, ZMMWORD PTR [ecx]	 # AVX512VBMI
71	vpermt2b	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI
72	vpermt2b	zmm6, zmm5, ZMMWORD PTR [edx+8128]	 # AVX512VBMI Disp8
73	vpermt2b	zmm6, zmm5, ZMMWORD PTR [edx+8192]	 # AVX512VBMI
74	vpermt2b	zmm6, zmm5, ZMMWORD PTR [edx-8192]	 # AVX512VBMI Disp8
75	vpermt2b	zmm6, zmm5, ZMMWORD PTR [edx-8256]	 # AVX512VBMI
76	vpmultishiftqb	zmm6, zmm5, zmm4	 # AVX512VBMI
77	vpmultishiftqb	zmm6{k7}, zmm5, zmm4	 # AVX512VBMI
78	vpmultishiftqb	zmm6{k7}{z}, zmm5, zmm4	 # AVX512VBMI
79	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [ecx]	 # AVX512VBMI
80	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [esp+esi*8-123456]	 # AVX512VBMI
81	vpmultishiftqb	zmm6, zmm5, [eax]{1to8}	 # AVX512VBMI
82	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [edx+8128]	 # AVX512VBMI Disp8
83	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [edx+8192]	 # AVX512VBMI
84	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [edx-8192]	 # AVX512VBMI Disp8
85	vpmultishiftqb	zmm6, zmm5, ZMMWORD PTR [edx-8256]	 # AVX512VBMI
86	vpmultishiftqb	zmm6, zmm5, [edx+1016]{1to8}	 # AVX512VBMI Disp8
87	vpmultishiftqb	zmm6, zmm5, [edx+1024]{1to8}	 # AVX512VBMI
88	vpmultishiftqb	zmm6, zmm5, [edx-1024]{1to8}	 # AVX512VBMI Disp8
89	vpmultishiftqb	zmm6, zmm5, [edx-1032]{1to8}	 # AVX512VBMI
90