1# Check 64bit AVX512VL,GFNI instructions
2
3	.allow_index_reg
4	.text
5_start:
6	vgf2p8affineqb	$0xab, %xmm28, %xmm29, %xmm30	 # AVX512VL,GFNI
7	vgf2p8affineqb	$0xab, %xmm28, %xmm29, %xmm30{%k7}	 # AVX512VL,GFNI
8	vgf2p8affineqb	$0xab, %xmm28, %xmm29, %xmm30{%k7}{z}	 # AVX512VL,GFNI
9	vgf2p8affineqb	$123, 0x123(%rax,%r14,8), %xmm29, %xmm30	 # AVX512VL,GFNI
10	vgf2p8affineqb	$123, 2032(%rdx), %xmm29, %xmm30	 # AVX512VL,GFNI Disp8
11	vgf2p8affineqb	$123, 1016(%rdx){1to2}, %xmm29, %xmm30	 # AVX512VL,GFNI Disp8
12	vgf2p8affineqb	$0xab, %ymm28, %ymm29, %ymm30	 # AVX512VL,GFNI
13	vgf2p8affineqb	$0xab, %ymm28, %ymm29, %ymm30{%k7}	 # AVX512VL,GFNI
14	vgf2p8affineqb	$0xab, %ymm28, %ymm29, %ymm30{%k7}{z}	 # AVX512VL,GFNI
15	vgf2p8affineqb	$123, 0x123(%rax,%r14,8), %ymm29, %ymm30	 # AVX512VL,GFNI
16	vgf2p8affineqb	$123, 4064(%rdx), %ymm29, %ymm30	 # AVX512VL,GFNI Disp8
17	vgf2p8affineqb	$123, 1016(%rdx){1to4}, %ymm29, %ymm30	 # AVX512VL,GFNI Disp8
18
19	vgf2p8affineinvqb	$0xab, %xmm28, %xmm29, %xmm30	 # AVX512VL,GFNI
20	vgf2p8affineinvqb	$0xab, %xmm28, %xmm29, %xmm30{%k7}	 # AVX512VL,GFNI
21	vgf2p8affineinvqb	$0xab, %xmm28, %xmm29, %xmm30{%k7}{z}	 # AVX512VL,GFNI
22	vgf2p8affineinvqb	$123, 0x123(%rax,%r14,8), %xmm29, %xmm30	 # AVX512VL,GFNI
23	vgf2p8affineinvqb	$123, 2032(%rdx), %xmm29, %xmm30	 # AVX512VL,GFNI Disp8
24	vgf2p8affineinvqb	$123, 1016(%rdx){1to2}, %xmm29, %xmm30	 # AVX512VL,GFNI Disp8
25	vgf2p8affineinvqb	$0xab, %ymm28, %ymm29, %ymm30	 # AVX512VL,GFNI
26	vgf2p8affineinvqb	$0xab, %ymm28, %ymm29, %ymm30{%k7}	 # AVX512VL,GFNI
27	vgf2p8affineinvqb	$0xab, %ymm28, %ymm29, %ymm30{%k7}{z}	 # AVX512VL,GFNI
28	vgf2p8affineinvqb	$123, 0x123(%rax,%r14,8), %ymm29, %ymm30	 # AVX512VL,GFNI
29	vgf2p8affineinvqb	$123, 4064(%rdx), %ymm29, %ymm30	 # AVX512VL,GFNI Disp8
30	vgf2p8affineinvqb	$123, 1016(%rdx){1to4}, %ymm29, %ymm30	 # AVX512VL,GFNI Disp8
31
32	vgf2p8mulb	%xmm28, %xmm29, %xmm30	 # AVX512VL,GFNI
33	vgf2p8mulb	%xmm28, %xmm29, %xmm30{%k7}	 # AVX512VL,GFNI
34	vgf2p8mulb	%xmm28, %xmm29, %xmm30{%k7}{z}	 # AVX512VL,GFNI
35	vgf2p8mulb	0x123(%rax,%r14,8), %xmm29, %xmm30	 # AVX512VL,GFNI
36	vgf2p8mulb	2032(%rdx), %xmm29, %xmm30	 # AVX512VL,GFNI Disp8
37	vgf2p8mulb	%ymm28, %ymm29, %ymm30	 # AVX512VL,GFNI
38	vgf2p8mulb	%ymm28, %ymm29, %ymm30{%k7}	 # AVX512VL,GFNI
39	vgf2p8mulb	%ymm28, %ymm29, %ymm30{%k7}{z}	 # AVX512VL,GFNI
40	vgf2p8mulb	0x123(%rax,%r14,8), %ymm29, %ymm30	 # AVX512VL,GFNI
41	vgf2p8mulb	4064(%rdx), %ymm29, %ymm30	 # AVX512VL,GFNI Disp8
42
43	.intel_syntax noprefix
44	vgf2p8affineqb	xmm30, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
45	vgf2p8affineqb	xmm30{k7}, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
46	vgf2p8affineqb	xmm30{k7}{z}, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
47	vgf2p8affineqb	xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234], 123	 # AVX512VL,GFNI
48	vgf2p8affineqb	xmm30, xmm29, XMMWORD PTR [rdx+2032], 123	 # AVX512VL,GFNI Disp8
49	vgf2p8affineqb	xmm30, xmm29, [rdx+1016]{1to2}, 123	 # AVX512VL,GFNI Disp8
50	vgf2p8affineqb	ymm30, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
51	vgf2p8affineqb	ymm30{k7}, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
52	vgf2p8affineqb	ymm30{k7}{z}, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
53	vgf2p8affineqb	ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234], 123	 # AVX512VL,GFNI
54	vgf2p8affineqb	ymm30, ymm29, YMMWORD PTR [rdx+4064], 123	 # AVX512VL,GFNI Disp8
55	vgf2p8affineqb	ymm30, ymm29, [rdx+1016]{1to4}, 123	 # AVX512VL,GFNI Disp8
56
57	vgf2p8affineinvqb	xmm30, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
58	vgf2p8affineinvqb	xmm30{k7}, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
59	vgf2p8affineinvqb	xmm30{k7}{z}, xmm29, xmm28, 0xab	 # AVX512VL,GFNI
60	vgf2p8affineinvqb	xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234], 123	 # AVX512VL,GFNI
61	vgf2p8affineinvqb	xmm30, xmm29, XMMWORD PTR [rdx+2032], 123	 # AVX512VL,GFNI Disp8
62	vgf2p8affineinvqb	xmm30, xmm29, [rdx+1016]{1to2}, 123	 # AVX512VL,GFNI Disp8
63	vgf2p8affineinvqb	ymm30, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
64	vgf2p8affineinvqb	ymm30{k7}, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
65	vgf2p8affineinvqb	ymm30{k7}{z}, ymm29, ymm28, 0xab	 # AVX512VL,GFNI
66	vgf2p8affineinvqb	ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234], 123	 # AVX512VL,GFNI
67	vgf2p8affineinvqb	ymm30, ymm29, YMMWORD PTR [rdx+4064], 123	 # AVX512VL,GFNI Disp8
68	vgf2p8affineinvqb	ymm30, ymm29, [rdx+1024]{1to4}, 123	 # AVX512VL,GFNI
69
70	vgf2p8mulb	xmm30, xmm29, xmm28	 # AVX512VL,GFNI
71	vgf2p8mulb	xmm30{k7}, xmm29, xmm28	 # AVX512VL,GFNI
72	vgf2p8mulb	xmm30{k7}{z}, xmm29, xmm28	 # AVX512VL,GFNI
73	vgf2p8mulb	xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234]	 # AVX512VL,GFNI
74	vgf2p8mulb	xmm30, xmm29, XMMWORD PTR [rdx+2032]	 # AVX512VL,GFNI Disp8
75	vgf2p8mulb	ymm30, ymm29, ymm28	 # AVX512VL,GFNI
76	vgf2p8mulb	ymm30{k7}, ymm29, ymm28	 # AVX512VL,GFNI
77	vgf2p8mulb	ymm30{k7}{z}, ymm29, ymm28	 # AVX512VL,GFNI
78	vgf2p8mulb	ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234]	 # AVX512VL,GFNI
79	vgf2p8mulb	ymm30, ymm29, YMMWORD PTR [rdx+4064]	 # AVX512VL,GFNI Disp8
80