x86/Intel: correct permitted operand sizes for AVX512 scatter/gather
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-avx512vbmi_vl.s
CommitLineData
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}
This page took 0.217054 seconds and 4 git commands to generate.