Commit | Line | Data |
---|---|---|
14f195c9 IT |
1 | # Check 64bit AVX512{VBMI,VL} instructions |
2 | ||
3 | .allow_index_reg | |
4 | .text | |
5 | _start: | |
6 | vpermb %xmm28, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
7 | vpermb %xmm28, %xmm29, %xmm30{%k7} # AVX512{VBMI,VL} | |
8 | vpermb %xmm28, %xmm29, %xmm30{%k7}{z} # AVX512{VBMI,VL} | |
9 | vpermb (%rcx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
10 | vpermb 0x123(%rax,%r14,8), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
11 | vpermb 2032(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
12 | vpermb 2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
13 | vpermb -2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
14 | vpermb -2064(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
15 | vpermb %ymm28, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
16 | vpermb %ymm28, %ymm29, %ymm30{%k7} # AVX512{VBMI,VL} | |
17 | vpermb %ymm28, %ymm29, %ymm30{%k7}{z} # AVX512{VBMI,VL} | |
18 | vpermb (%rcx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
19 | vpermb 0x123(%rax,%r14,8), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
20 | vpermb 4064(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
21 | vpermb 4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
22 | vpermb -4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
23 | vpermb -4128(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
24 | vpermi2b %xmm28, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
25 | vpermi2b %xmm28, %xmm29, %xmm30{%k7} # AVX512{VBMI,VL} | |
26 | vpermi2b %xmm28, %xmm29, %xmm30{%k7}{z} # AVX512{VBMI,VL} | |
27 | vpermi2b (%rcx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
28 | vpermi2b 0x123(%rax,%r14,8), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
29 | vpermi2b 2032(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
30 | vpermi2b 2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
31 | vpermi2b -2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
32 | vpermi2b -2064(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
33 | vpermi2b %ymm28, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
34 | vpermi2b %ymm28, %ymm29, %ymm30{%k7} # AVX512{VBMI,VL} | |
35 | vpermi2b %ymm28, %ymm29, %ymm30{%k7}{z} # AVX512{VBMI,VL} | |
36 | vpermi2b (%rcx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
37 | vpermi2b 0x123(%rax,%r14,8), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
38 | vpermi2b 4064(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
39 | vpermi2b 4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
40 | vpermi2b -4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
41 | vpermi2b -4128(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
42 | vpermt2b %xmm28, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
43 | vpermt2b %xmm28, %xmm29, %xmm30{%k7} # AVX512{VBMI,VL} | |
44 | vpermt2b %xmm28, %xmm29, %xmm30{%k7}{z} # AVX512{VBMI,VL} | |
45 | vpermt2b (%rcx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
46 | vpermt2b 0x123(%rax,%r14,8), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
47 | vpermt2b 2032(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
48 | vpermt2b 2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
49 | vpermt2b -2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
50 | vpermt2b -2064(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
51 | vpermt2b %ymm28, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
52 | vpermt2b %ymm28, %ymm29, %ymm30{%k7} # AVX512{VBMI,VL} | |
53 | vpermt2b %ymm28, %ymm29, %ymm30{%k7}{z} # AVX512{VBMI,VL} | |
54 | vpermt2b (%rcx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
55 | vpermt2b 0x123(%rax,%r14,8), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
56 | vpermt2b 4064(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
57 | vpermt2b 4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
58 | vpermt2b -4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
59 | vpermt2b -4128(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
60 | vpmultishiftqb %xmm28, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
61 | vpmultishiftqb %xmm28, %xmm29, %xmm30{%k7} # AVX512{VBMI,VL} | |
62 | vpmultishiftqb %xmm28, %xmm29, %xmm30{%k7}{z} # AVX512{VBMI,VL} | |
63 | vpmultishiftqb (%rcx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
64 | vpmultishiftqb 0x123(%rax,%r14,8), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
65 | vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
66 | vpmultishiftqb 2032(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
67 | vpmultishiftqb 2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
68 | vpmultishiftqb -2048(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
69 | vpmultishiftqb -2064(%rdx), %xmm29, %xmm30 # AVX512{VBMI,VL} | |
70 | vpmultishiftqb 1016(%rdx){1to2}, %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
71 | vpmultishiftqb 1024(%rdx){1to2}, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
72 | vpmultishiftqb -1024(%rdx){1to2}, %xmm29, %xmm30 # AVX512{VBMI,VL} Disp8 | |
73 | vpmultishiftqb -1032(%rdx){1to2}, %xmm29, %xmm30 # AVX512{VBMI,VL} | |
74 | vpmultishiftqb %ymm28, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
75 | vpmultishiftqb %ymm28, %ymm29, %ymm30{%k7} # AVX512{VBMI,VL} | |
76 | vpmultishiftqb %ymm28, %ymm29, %ymm30{%k7}{z} # AVX512{VBMI,VL} | |
77 | vpmultishiftqb (%rcx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
78 | vpmultishiftqb 0x123(%rax,%r14,8), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
79 | vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
80 | vpmultishiftqb 4064(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
81 | vpmultishiftqb 4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
82 | vpmultishiftqb -4096(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
83 | vpmultishiftqb -4128(%rdx), %ymm29, %ymm30 # AVX512{VBMI,VL} | |
84 | vpmultishiftqb 1016(%rdx){1to4}, %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
85 | vpmultishiftqb 1024(%rdx){1to4}, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
86 | vpmultishiftqb -1024(%rdx){1to4}, %ymm29, %ymm30 # AVX512{VBMI,VL} Disp8 | |
87 | vpmultishiftqb -1032(%rdx){1to4}, %ymm29, %ymm30 # AVX512{VBMI,VL} | |
88 | ||
89 | .intel_syntax noprefix | |
90 | vpermb xmm30, xmm29, xmm28 # AVX512{VBMI,VL} | |
91 | vpermb xmm30{k7}, xmm29, xmm28 # AVX512{VBMI,VL} | |
92 | vpermb xmm30{k7}{z}, xmm29, xmm28 # AVX512{VBMI,VL} | |
93 | vpermb xmm30, xmm29, XMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
94 | vpermb xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
95 | vpermb xmm30, xmm29, XMMWORD PTR [rdx+2032] # AVX512{VBMI,VL} Disp8 | |
96 | vpermb xmm30, xmm29, XMMWORD PTR [rdx+2048] # AVX512{VBMI,VL} | |
97 | vpermb xmm30, xmm29, XMMWORD PTR [rdx-2048] # AVX512{VBMI,VL} Disp8 | |
98 | vpermb xmm30, xmm29, XMMWORD PTR [rdx-2064] # AVX512{VBMI,VL} | |
99 | vpermb ymm30, ymm29, ymm28 # AVX512{VBMI,VL} | |
100 | vpermb ymm30{k7}, ymm29, ymm28 # AVX512{VBMI,VL} | |
101 | vpermb ymm30{k7}{z}, ymm29, ymm28 # AVX512{VBMI,VL} | |
102 | vpermb ymm30, ymm29, YMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
103 | vpermb ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
104 | vpermb ymm30, ymm29, YMMWORD PTR [rdx+4064] # AVX512{VBMI,VL} Disp8 | |
105 | vpermb ymm30, ymm29, YMMWORD PTR [rdx+4096] # AVX512{VBMI,VL} | |
106 | vpermb ymm30, ymm29, YMMWORD PTR [rdx-4096] # AVX512{VBMI,VL} Disp8 | |
107 | vpermb ymm30, ymm29, YMMWORD PTR [rdx-4128] # AVX512{VBMI,VL} | |
108 | vpermi2b xmm30, xmm29, xmm28 # AVX512{VBMI,VL} | |
109 | vpermi2b xmm30{k7}, xmm29, xmm28 # AVX512{VBMI,VL} | |
110 | vpermi2b xmm30{k7}{z}, xmm29, xmm28 # AVX512{VBMI,VL} | |
111 | vpermi2b xmm30, xmm29, XMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
112 | vpermi2b xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
113 | vpermi2b xmm30, xmm29, XMMWORD PTR [rdx+2032] # AVX512{VBMI,VL} Disp8 | |
114 | vpermi2b xmm30, xmm29, XMMWORD PTR [rdx+2048] # AVX512{VBMI,VL} | |
115 | vpermi2b xmm30, xmm29, XMMWORD PTR [rdx-2048] # AVX512{VBMI,VL} Disp8 | |
116 | vpermi2b xmm30, xmm29, XMMWORD PTR [rdx-2064] # AVX512{VBMI,VL} | |
117 | vpermi2b ymm30, ymm29, ymm28 # AVX512{VBMI,VL} | |
118 | vpermi2b ymm30{k7}, ymm29, ymm28 # AVX512{VBMI,VL} | |
119 | vpermi2b ymm30{k7}{z}, ymm29, ymm28 # AVX512{VBMI,VL} | |
120 | vpermi2b ymm30, ymm29, YMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
121 | vpermi2b ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
122 | vpermi2b ymm30, ymm29, YMMWORD PTR [rdx+4064] # AVX512{VBMI,VL} Disp8 | |
123 | vpermi2b ymm30, ymm29, YMMWORD PTR [rdx+4096] # AVX512{VBMI,VL} | |
124 | vpermi2b ymm30, ymm29, YMMWORD PTR [rdx-4096] # AVX512{VBMI,VL} Disp8 | |
125 | vpermi2b ymm30, ymm29, YMMWORD PTR [rdx-4128] # AVX512{VBMI,VL} | |
126 | vpermt2b xmm30, xmm29, xmm28 # AVX512{VBMI,VL} | |
127 | vpermt2b xmm30{k7}, xmm29, xmm28 # AVX512{VBMI,VL} | |
128 | vpermt2b xmm30{k7}{z}, xmm29, xmm28 # AVX512{VBMI,VL} | |
129 | vpermt2b xmm30, xmm29, XMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
130 | vpermt2b xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
131 | vpermt2b xmm30, xmm29, XMMWORD PTR [rdx+2032] # AVX512{VBMI,VL} Disp8 | |
132 | vpermt2b xmm30, xmm29, XMMWORD PTR [rdx+2048] # AVX512{VBMI,VL} | |
133 | vpermt2b xmm30, xmm29, XMMWORD PTR [rdx-2048] # AVX512{VBMI,VL} Disp8 | |
134 | vpermt2b xmm30, xmm29, XMMWORD PTR [rdx-2064] # AVX512{VBMI,VL} | |
135 | vpermt2b ymm30, ymm29, ymm28 # AVX512{VBMI,VL} | |
136 | vpermt2b ymm30{k7}, ymm29, ymm28 # AVX512{VBMI,VL} | |
137 | vpermt2b ymm30{k7}{z}, ymm29, ymm28 # AVX512{VBMI,VL} | |
138 | vpermt2b ymm30, ymm29, YMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
139 | vpermt2b ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
140 | vpermt2b ymm30, ymm29, YMMWORD PTR [rdx+4064] # AVX512{VBMI,VL} Disp8 | |
141 | vpermt2b ymm30, ymm29, YMMWORD PTR [rdx+4096] # AVX512{VBMI,VL} | |
142 | vpermt2b ymm30, ymm29, YMMWORD PTR [rdx-4096] # AVX512{VBMI,VL} Disp8 | |
143 | vpermt2b ymm30, ymm29, YMMWORD PTR [rdx-4128] # AVX512{VBMI,VL} | |
144 | vpmultishiftqb xmm30, xmm29, xmm28 # AVX512{VBMI,VL} | |
145 | vpmultishiftqb xmm30{k7}, xmm29, xmm28 # AVX512{VBMI,VL} | |
146 | vpmultishiftqb xmm30{k7}{z}, xmm29, xmm28 # AVX512{VBMI,VL} | |
147 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
148 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
149 | vpmultishiftqb xmm30, xmm29, [rcx]{1to2} # AVX512{VBMI,VL} | |
150 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rdx+2032] # AVX512{VBMI,VL} Disp8 | |
151 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rdx+2048] # AVX512{VBMI,VL} | |
152 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rdx-2048] # AVX512{VBMI,VL} Disp8 | |
153 | vpmultishiftqb xmm30, xmm29, XMMWORD PTR [rdx-2064] # AVX512{VBMI,VL} | |
154 | vpmultishiftqb xmm30, xmm29, [rdx+1016]{1to2} # AVX512{VBMI,VL} Disp8 | |
155 | vpmultishiftqb xmm30, xmm29, [rdx+1024]{1to2} # AVX512{VBMI,VL} | |
156 | vpmultishiftqb xmm30, xmm29, [rdx-1024]{1to2} # AVX512{VBMI,VL} Disp8 | |
157 | vpmultishiftqb xmm30, xmm29, [rdx-1032]{1to2} # AVX512{VBMI,VL} | |
158 | vpmultishiftqb ymm30, ymm29, ymm28 # AVX512{VBMI,VL} | |
159 | vpmultishiftqb ymm30{k7}, ymm29, ymm28 # AVX512{VBMI,VL} | |
160 | vpmultishiftqb ymm30{k7}{z}, ymm29, ymm28 # AVX512{VBMI,VL} | |
161 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rcx] # AVX512{VBMI,VL} | |
162 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rax+r14*8+0x1234] # AVX512{VBMI,VL} | |
163 | vpmultishiftqb ymm30, ymm29, [rcx]{1to4} # AVX512{VBMI,VL} | |
164 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rdx+4064] # AVX512{VBMI,VL} Disp8 | |
165 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rdx+4096] # AVX512{VBMI,VL} | |
166 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rdx-4096] # AVX512{VBMI,VL} Disp8 | |
167 | vpmultishiftqb ymm30, ymm29, YMMWORD PTR [rdx-4128] # AVX512{VBMI,VL} | |
168 | vpmultishiftqb ymm30, ymm29, [rdx+1016]{1to4} # AVX512{VBMI,VL} Disp8 | |
169 | vpmultishiftqb ymm30, ymm29, [rdx+1024]{1to4} # AVX512{VBMI,VL} | |
170 | vpmultishiftqb ymm30, ymm29, [rdx-1024]{1to4} # AVX512{VBMI,VL} Disp8 | |
171 | vpmultishiftqb ymm30, ymm29, [rdx-1032]{1to4} # AVX512{VBMI,VL} |