[InstCombine] Signed saturation patterns
[llvm-core.git] / test / MC / X86 / avx512ifmavl-encoding.s
blob9871a2e1b94f45b5c489e18414910781c792e8f5
1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
3 vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
4 //CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
5 //CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb4,0xf4]
7 vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
8 //CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
9 //CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb4,0xf4]
11 vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
12 //CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
13 //CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb4,0xf4]
15 vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
16 //CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
17 //CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb4,0xf4]
19 vpmadd52luq %xmm28, %xmm29, %xmm30
20 //CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30
21 //CHECK: encoding: [0x62,0x02,0x95,0x00,0xb4,0xf4]
23 vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
24 //CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
25 //CHECK: encoding: [0x62,0x02,0x95,0x07,0xb4,0xf4]
27 vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
28 //CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
29 //CHECK: encoding: [0x62,0x02,0x95,0x87,0xb4,0xf4]
31 vpmadd52luq (%rcx), %xmm29, %xmm30
32 //CHECK: vpmadd52luq (%rcx), %xmm29, %xmm30
33 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x31]
35 vpmadd52luq 0x123(%rax,%r14,8), %xmm29, %xmm30
36 //CHECK: vpmadd52luq 291(%rax,%r14,8), %xmm29, %xmm30
37 //CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
39 vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
40 //CHECK: vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
41 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x31]
43 vpmadd52luq 0x7f0(%rdx), %xmm29, %xmm30
44 //CHECK: vpmadd52luq 2032(%rdx), %xmm29, %xmm30
45 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x7f]
47 vpmadd52luq 0x800(%rdx), %xmm29, %xmm30
48 //CHECK: vpmadd52luq 2048(%rdx), %xmm29, %xmm30
49 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0x00,0x08,0x00,0x00]
51 vpmadd52luq -0x800(%rdx), %xmm29, %xmm30
52 //CHECK: vpmadd52luq -2048(%rdx), %xmm29, %xmm30
53 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x80]
55 vpmadd52luq -0x810(%rdx), %xmm29, %xmm30
56 //CHECK: vpmadd52luq -2064(%rdx), %xmm29, %xmm30
57 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0xf0,0xf7,0xff,0xff]
59 vpmadd52luq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
60 //CHECK: vpmadd52luq 1016(%rdx){1to2}, %xmm29, %xmm30
61 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x7f]
63 vpmadd52luq 0x400(%rdx){1to2}, %xmm29, %xmm30
64 //CHECK: vpmadd52luq 1024(%rdx){1to2}, %xmm29, %xmm30
65 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0x00,0x04,0x00,0x00]
67 vpmadd52luq -0x400(%rdx){1to2}, %xmm29, %xmm30
68 //CHECK: vpmadd52luq -1024(%rdx){1to2}, %xmm29, %xmm30
69 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x80]
71 vpmadd52luq -0x408(%rdx){1to2}, %xmm29, %xmm30
72 //CHECK: vpmadd52luq -1032(%rdx){1to2}, %xmm29, %xmm30
73 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
75 vpmadd52luq %ymm28, %ymm29, %ymm30
76 //CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30
77 //CHECK: encoding: [0x62,0x02,0x95,0x20,0xb4,0xf4]
79 vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
80 //CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
81 //CHECK: encoding: [0x62,0x02,0x95,0x27,0xb4,0xf4]
83 vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
84 //CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
85 //CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb4,0xf4]
87 vpmadd52luq (%rcx), %ymm29, %ymm30
88 //CHECK: vpmadd52luq (%rcx), %ymm29, %ymm30
89 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x31]
91 vpmadd52luq 0x123(%rax,%r14,8), %ymm29, %ymm30
92 //CHECK: vpmadd52luq 291(%rax,%r14,8), %ymm29, %ymm30
93 //CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
95 vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
96 //CHECK: vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
97 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x31]
99 vpmadd52luq 0xfe0(%rdx), %ymm29, %ymm30
100 //CHECK: vpmadd52luq 4064(%rdx), %ymm29, %ymm30
101 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x7f]
103 vpmadd52luq 0x1000(%rdx), %ymm29, %ymm30
104 //CHECK: vpmadd52luq 4096(%rdx), %ymm29, %ymm30
105 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0x00,0x10,0x00,0x00]
107 vpmadd52luq -0x1000(%rdx), %ymm29, %ymm30
108 //CHECK: vpmadd52luq -4096(%rdx), %ymm29, %ymm30
109 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x80]
111 vpmadd52luq -0x1020(%rdx), %ymm29, %ymm30
112 //CHECK: vpmadd52luq -4128(%rdx), %ymm29, %ymm30
113 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0xe0,0xef,0xff,0xff]
115 vpmadd52luq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
116 //CHECK: vpmadd52luq 1016(%rdx){1to4}, %ymm29, %ymm30
117 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x7f]
119 vpmadd52luq 0x400(%rdx){1to4}, %ymm29, %ymm30
120 //CHECK: vpmadd52luq 1024(%rdx){1to4}, %ymm29, %ymm30
121 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0x00,0x04,0x00,0x00]
123 vpmadd52luq -0x400(%rdx){1to4}, %ymm29, %ymm30
124 //CHECK: vpmadd52luq -1024(%rdx){1to4}, %ymm29, %ymm30
125 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x80]
127 vpmadd52luq -0x408(%rdx){1to4}, %ymm29, %ymm30
128 //CHECK: vpmadd52luq -1032(%rdx){1to4}, %ymm29, %ymm30
129 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
131 vpmadd52luq 0x1234(%rax,%r14,8), %xmm29, %xmm30
132 //CHECK: vpmadd52luq 4660(%rax,%r14,8), %xmm29, %xmm30
133 //CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
135 vpmadd52luq 0x1234(%rax,%r14,8), %ymm29, %ymm30
136 //CHECK: vpmadd52luq 4660(%rax,%r14,8), %ymm29, %ymm30
137 //CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
139 vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
140 //CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
141 //CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb5,0xf4]
143 vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
144 //CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
145 //CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb5,0xf4]
147 vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
148 //CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
149 //CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb5,0xf4]
151 vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
152 //CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
153 //CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb5,0xf4]
155 vpmadd52huq %xmm28, %xmm29, %xmm30
156 //CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30
157 //CHECK: encoding: [0x62,0x02,0x95,0x00,0xb5,0xf4]
159 vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
160 //CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
161 //CHECK: encoding: [0x62,0x02,0x95,0x07,0xb5,0xf4]
163 vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
164 //CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
165 //CHECK: encoding: [0x62,0x02,0x95,0x87,0xb5,0xf4]
167 vpmadd52huq (%rcx), %xmm29, %xmm30
168 //CHECK: vpmadd52huq (%rcx), %xmm29, %xmm30
169 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x31]
171 vpmadd52huq 0x123(%rax,%r14,8), %xmm29, %xmm30
172 //CHECK: vpmadd52huq 291(%rax,%r14,8), %xmm29, %xmm30
173 //CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
175 vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
176 //CHECK: vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
177 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x31]
179 vpmadd52huq 0x7f0(%rdx), %xmm29, %xmm30
180 //CHECK: vpmadd52huq 2032(%rdx), %xmm29, %xmm30
181 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x7f]
183 vpmadd52huq 0x800(%rdx), %xmm29, %xmm30
184 //CHECK: vpmadd52huq 2048(%rdx), %xmm29, %xmm30
185 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0x00,0x08,0x00,0x00]
187 vpmadd52huq -0x800(%rdx), %xmm29, %xmm30
188 //CHECK: vpmadd52huq -2048(%rdx), %xmm29, %xmm30
189 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x80]
191 vpmadd52huq -0x810(%rdx), %xmm29, %xmm30
192 //CHECK: vpmadd52huq -2064(%rdx), %xmm29, %xmm30
193 //CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0xf0,0xf7,0xff,0xff]
195 vpmadd52huq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
196 //CHECK: vpmadd52huq 1016(%rdx){1to2}, %xmm29, %xmm30
197 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x7f]
199 vpmadd52huq 0x400(%rdx){1to2}, %xmm29, %xmm30
200 //CHECK: vpmadd52huq 1024(%rdx){1to2}, %xmm29, %xmm30
201 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0x00,0x04,0x00,0x00]
203 vpmadd52huq -0x400(%rdx){1to2}, %xmm29, %xmm30
204 //CHECK: vpmadd52huq -1024(%rdx){1to2}, %xmm29, %xmm30
205 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x80]
207 vpmadd52huq -0x408(%rdx){1to2}, %xmm29, %xmm30
208 //CHECK: vpmadd52huq -1032(%rdx){1to2}, %xmm29, %xmm30
209 //CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
211 vpmadd52huq %ymm28, %ymm29, %ymm30
212 //CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30
213 //CHECK: encoding: [0x62,0x02,0x95,0x20,0xb5,0xf4]
215 vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
216 //CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
217 //CHECK: encoding: [0x62,0x02,0x95,0x27,0xb5,0xf4]
219 vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
220 //CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
221 //CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb5,0xf4]
223 vpmadd52huq (%rcx), %ymm29, %ymm30
224 //CHECK: vpmadd52huq (%rcx), %ymm29, %ymm30
225 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x31]
227 vpmadd52huq 0x123(%rax,%r14,8), %ymm29, %ymm30
228 //CHECK: vpmadd52huq 291(%rax,%r14,8), %ymm29, %ymm30
229 //CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
231 vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
232 //CHECK: vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
233 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x31]
235 vpmadd52huq 0xfe0(%rdx), %ymm29, %ymm30
236 //CHECK: vpmadd52huq 4064(%rdx), %ymm29, %ymm30
237 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x7f]
239 vpmadd52huq 0x1000(%rdx), %ymm29, %ymm30
240 //CHECK: vpmadd52huq 4096(%rdx), %ymm29, %ymm30
241 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0x00,0x10,0x00,0x00]
243 vpmadd52huq -0x1000(%rdx), %ymm29, %ymm30
244 //CHECK: vpmadd52huq -4096(%rdx), %ymm29, %ymm30
245 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x80]
247 vpmadd52huq -0x1020(%rdx), %ymm29, %ymm30
248 //CHECK: vpmadd52huq -4128(%rdx), %ymm29, %ymm30
249 //CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0xe0,0xef,0xff,0xff]
251 vpmadd52huq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
252 //CHECK: vpmadd52huq 1016(%rdx){1to4}, %ymm29, %ymm30
253 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x7f]
255 vpmadd52huq 0x400(%rdx){1to4}, %ymm29, %ymm30
256 //CHECK: vpmadd52huq 1024(%rdx){1to4}, %ymm29, %ymm30
257 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0x00,0x04,0x00,0x00]
259 vpmadd52huq -0x400(%rdx){1to4}, %ymm29, %ymm30
260 //CHECK: vpmadd52huq -1024(%rdx){1to4}, %ymm29, %ymm30
261 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x80]
263 vpmadd52huq -0x408(%rdx){1to4}, %ymm29, %ymm30
264 //CHECK: vpmadd52huq -1032(%rdx){1to4}, %ymm29, %ymm30
265 //CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
267 vpmadd52huq 0x1234(%rax,%r14,8), %xmm29, %xmm30
268 //CHECK: vpmadd52huq 4660(%rax,%r14,8), %xmm29, %xmm30
269 //CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
271 vpmadd52huq 0x1234(%rax,%r14,8), %ymm29, %ymm30
272 //CHECK: vpmadd52huq 4660(%rax,%r14,8), %ymm29, %ymm30
273 //CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]