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