[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / MC / X86 / SSE3-32.s
blob2fe639978b85f267e3ffb682bfc3266a70bc42ad
1 // RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
3 // CHECK: addsubpd -485498096(%edx,%eax,4), %xmm1
4 // CHECK: encoding: [0x66,0x0f,0xd0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
5 addsubpd -485498096(%edx,%eax,4), %xmm1
7 // CHECK: addsubpd 485498096(%edx,%eax,4), %xmm1
8 // CHECK: encoding: [0x66,0x0f,0xd0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
9 addsubpd 485498096(%edx,%eax,4), %xmm1
11 // CHECK: addsubpd 485498096(%edx), %xmm1
12 // CHECK: encoding: [0x66,0x0f,0xd0,0x8a,0xf0,0x1c,0xf0,0x1c]
13 addsubpd 485498096(%edx), %xmm1
15 // CHECK: addsubpd 485498096, %xmm1
16 // CHECK: encoding: [0x66,0x0f,0xd0,0x0d,0xf0,0x1c,0xf0,0x1c]
17 addsubpd 485498096, %xmm1
19 // CHECK: addsubpd 64(%edx,%eax), %xmm1
20 // CHECK: encoding: [0x66,0x0f,0xd0,0x4c,0x02,0x40]
21 addsubpd 64(%edx,%eax), %xmm1
23 // CHECK: addsubpd (%edx), %xmm1
24 // CHECK: encoding: [0x66,0x0f,0xd0,0x0a]
25 addsubpd (%edx), %xmm1
27 // CHECK: addsubpd %xmm1, %xmm1
28 // CHECK: encoding: [0x66,0x0f,0xd0,0xc9]
29 addsubpd %xmm1, %xmm1
31 // CHECK: addsubps -485498096(%edx,%eax,4), %xmm1
32 // CHECK: encoding: [0xf2,0x0f,0xd0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
33 addsubps -485498096(%edx,%eax,4), %xmm1
35 // CHECK: addsubps 485498096(%edx,%eax,4), %xmm1
36 // CHECK: encoding: [0xf2,0x0f,0xd0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
37 addsubps 485498096(%edx,%eax,4), %xmm1
39 // CHECK: addsubps 485498096(%edx), %xmm1
40 // CHECK: encoding: [0xf2,0x0f,0xd0,0x8a,0xf0,0x1c,0xf0,0x1c]
41 addsubps 485498096(%edx), %xmm1
43 // CHECK: addsubps 485498096, %xmm1
44 // CHECK: encoding: [0xf2,0x0f,0xd0,0x0d,0xf0,0x1c,0xf0,0x1c]
45 addsubps 485498096, %xmm1
47 // CHECK: addsubps 64(%edx,%eax), %xmm1
48 // CHECK: encoding: [0xf2,0x0f,0xd0,0x4c,0x02,0x40]
49 addsubps 64(%edx,%eax), %xmm1
51 // CHECK: addsubps (%edx), %xmm1
52 // CHECK: encoding: [0xf2,0x0f,0xd0,0x0a]
53 addsubps (%edx), %xmm1
55 // CHECK: addsubps %xmm1, %xmm1
56 // CHECK: encoding: [0xf2,0x0f,0xd0,0xc9]
57 addsubps %xmm1, %xmm1
59 // CHECK: fisttpl -485498096(%edx,%eax,4)
60 // CHECK: encoding: [0xdb,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
61 fisttpl -485498096(%edx,%eax,4)
63 // CHECK: fisttpl 485498096(%edx,%eax,4)
64 // CHECK: encoding: [0xdb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
65 fisttpl 485498096(%edx,%eax,4)
67 // CHECK: fisttpl 485498096(%edx)
68 // CHECK: encoding: [0xdb,0x8a,0xf0,0x1c,0xf0,0x1c]
69 fisttpl 485498096(%edx)
71 // CHECK: fisttpl 485498096
72 // CHECK: encoding: [0xdb,0x0d,0xf0,0x1c,0xf0,0x1c]
73 fisttpl 485498096
75 // CHECK: fisttpl 64(%edx,%eax)
76 // CHECK: encoding: [0xdb,0x4c,0x02,0x40]
77 fisttpl 64(%edx,%eax)
79 // CHECK: fisttpl (%edx)
80 // CHECK: encoding: [0xdb,0x0a]
81 fisttpl (%edx)
83 // CHECK: fisttpll -485498096(%edx,%eax,4)
84 // CHECK: encoding: [0xdd,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
85 fisttpll -485498096(%edx,%eax,4)
87 // CHECK: fisttpll 485498096(%edx,%eax,4)
88 // CHECK: encoding: [0xdd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
89 fisttpll 485498096(%edx,%eax,4)
91 // CHECK: fisttpll 485498096(%edx)
92 // CHECK: encoding: [0xdd,0x8a,0xf0,0x1c,0xf0,0x1c]
93 fisttpll 485498096(%edx)
95 // CHECK: fisttpll 485498096
96 // CHECK: encoding: [0xdd,0x0d,0xf0,0x1c,0xf0,0x1c]
97 fisttpll 485498096
99 // CHECK: fisttpll 64(%edx,%eax)
100 // CHECK: encoding: [0xdd,0x4c,0x02,0x40]
101 fisttpll 64(%edx,%eax)
103 // CHECK: fisttpll (%edx)
104 // CHECK: encoding: [0xdd,0x0a]
105 fisttpll (%edx)
107 // CHECK: fisttps -485498096(%edx,%eax,4)
108 // CHECK: encoding: [0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
109 fisttps -485498096(%edx,%eax,4)
111 // CHECK: fisttps 485498096(%edx,%eax,4)
112 // CHECK: encoding: [0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
113 fisttps 485498096(%edx,%eax,4)
115 // CHECK: fisttps 485498096(%edx)
116 // CHECK: encoding: [0xdf,0x8a,0xf0,0x1c,0xf0,0x1c]
117 fisttps 485498096(%edx)
119 // CHECK: fisttps 485498096
120 // CHECK: encoding: [0xdf,0x0d,0xf0,0x1c,0xf0,0x1c]
121 fisttps 485498096
123 // CHECK: fisttps 64(%edx,%eax)
124 // CHECK: encoding: [0xdf,0x4c,0x02,0x40]
125 fisttps 64(%edx,%eax)
127 // CHECK: fisttps (%edx)
128 // CHECK: encoding: [0xdf,0x0a]
129 fisttps (%edx)
131 // CHECK: haddpd -485498096(%edx,%eax,4), %xmm1
132 // CHECK: encoding: [0x66,0x0f,0x7c,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
133 haddpd -485498096(%edx,%eax,4), %xmm1
135 // CHECK: haddpd 485498096(%edx,%eax,4), %xmm1
136 // CHECK: encoding: [0x66,0x0f,0x7c,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
137 haddpd 485498096(%edx,%eax,4), %xmm1
139 // CHECK: haddpd 485498096(%edx), %xmm1
140 // CHECK: encoding: [0x66,0x0f,0x7c,0x8a,0xf0,0x1c,0xf0,0x1c]
141 haddpd 485498096(%edx), %xmm1
143 // CHECK: haddpd 485498096, %xmm1
144 // CHECK: encoding: [0x66,0x0f,0x7c,0x0d,0xf0,0x1c,0xf0,0x1c]
145 haddpd 485498096, %xmm1
147 // CHECK: haddpd 64(%edx,%eax), %xmm1
148 // CHECK: encoding: [0x66,0x0f,0x7c,0x4c,0x02,0x40]
149 haddpd 64(%edx,%eax), %xmm1
151 // CHECK: haddpd (%edx), %xmm1
152 // CHECK: encoding: [0x66,0x0f,0x7c,0x0a]
153 haddpd (%edx), %xmm1
155 // CHECK: haddpd %xmm1, %xmm1
156 // CHECK: encoding: [0x66,0x0f,0x7c,0xc9]
157 haddpd %xmm1, %xmm1
159 // CHECK: haddps -485498096(%edx,%eax,4), %xmm1
160 // CHECK: encoding: [0xf2,0x0f,0x7c,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
161 haddps -485498096(%edx,%eax,4), %xmm1
163 // CHECK: haddps 485498096(%edx,%eax,4), %xmm1
164 // CHECK: encoding: [0xf2,0x0f,0x7c,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
165 haddps 485498096(%edx,%eax,4), %xmm1
167 // CHECK: haddps 485498096(%edx), %xmm1
168 // CHECK: encoding: [0xf2,0x0f,0x7c,0x8a,0xf0,0x1c,0xf0,0x1c]
169 haddps 485498096(%edx), %xmm1
171 // CHECK: haddps 485498096, %xmm1
172 // CHECK: encoding: [0xf2,0x0f,0x7c,0x0d,0xf0,0x1c,0xf0,0x1c]
173 haddps 485498096, %xmm1
175 // CHECK: haddps 64(%edx,%eax), %xmm1
176 // CHECK: encoding: [0xf2,0x0f,0x7c,0x4c,0x02,0x40]
177 haddps 64(%edx,%eax), %xmm1
179 // CHECK: haddps (%edx), %xmm1
180 // CHECK: encoding: [0xf2,0x0f,0x7c,0x0a]
181 haddps (%edx), %xmm1
183 // CHECK: haddps %xmm1, %xmm1
184 // CHECK: encoding: [0xf2,0x0f,0x7c,0xc9]
185 haddps %xmm1, %xmm1
187 // CHECK: hsubpd -485498096(%edx,%eax,4), %xmm1
188 // CHECK: encoding: [0x66,0x0f,0x7d,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
189 hsubpd -485498096(%edx,%eax,4), %xmm1
191 // CHECK: hsubpd 485498096(%edx,%eax,4), %xmm1
192 // CHECK: encoding: [0x66,0x0f,0x7d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
193 hsubpd 485498096(%edx,%eax,4), %xmm1
195 // CHECK: hsubpd 485498096(%edx), %xmm1
196 // CHECK: encoding: [0x66,0x0f,0x7d,0x8a,0xf0,0x1c,0xf0,0x1c]
197 hsubpd 485498096(%edx), %xmm1
199 // CHECK: hsubpd 485498096, %xmm1
200 // CHECK: encoding: [0x66,0x0f,0x7d,0x0d,0xf0,0x1c,0xf0,0x1c]
201 hsubpd 485498096, %xmm1
203 // CHECK: hsubpd 64(%edx,%eax), %xmm1
204 // CHECK: encoding: [0x66,0x0f,0x7d,0x4c,0x02,0x40]
205 hsubpd 64(%edx,%eax), %xmm1
207 // CHECK: hsubpd (%edx), %xmm1
208 // CHECK: encoding: [0x66,0x0f,0x7d,0x0a]
209 hsubpd (%edx), %xmm1
211 // CHECK: hsubpd %xmm1, %xmm1
212 // CHECK: encoding: [0x66,0x0f,0x7d,0xc9]
213 hsubpd %xmm1, %xmm1
215 // CHECK: hsubps -485498096(%edx,%eax,4), %xmm1
216 // CHECK: encoding: [0xf2,0x0f,0x7d,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
217 hsubps -485498096(%edx,%eax,4), %xmm1
219 // CHECK: hsubps 485498096(%edx,%eax,4), %xmm1
220 // CHECK: encoding: [0xf2,0x0f,0x7d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
221 hsubps 485498096(%edx,%eax,4), %xmm1
223 // CHECK: hsubps 485498096(%edx), %xmm1
224 // CHECK: encoding: [0xf2,0x0f,0x7d,0x8a,0xf0,0x1c,0xf0,0x1c]
225 hsubps 485498096(%edx), %xmm1
227 // CHECK: hsubps 485498096, %xmm1
228 // CHECK: encoding: [0xf2,0x0f,0x7d,0x0d,0xf0,0x1c,0xf0,0x1c]
229 hsubps 485498096, %xmm1
231 // CHECK: hsubps 64(%edx,%eax), %xmm1
232 // CHECK: encoding: [0xf2,0x0f,0x7d,0x4c,0x02,0x40]
233 hsubps 64(%edx,%eax), %xmm1
235 // CHECK: hsubps (%edx), %xmm1
236 // CHECK: encoding: [0xf2,0x0f,0x7d,0x0a]
237 hsubps (%edx), %xmm1
239 // CHECK: hsubps %xmm1, %xmm1
240 // CHECK: encoding: [0xf2,0x0f,0x7d,0xc9]
241 hsubps %xmm1, %xmm1
243 // CHECK: lddqu -485498096(%edx,%eax,4), %xmm1
244 // CHECK: encoding: [0xf2,0x0f,0xf0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
245 lddqu -485498096(%edx,%eax,4), %xmm1
247 // CHECK: lddqu 485498096(%edx,%eax,4), %xmm1
248 // CHECK: encoding: [0xf2,0x0f,0xf0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
249 lddqu 485498096(%edx,%eax,4), %xmm1
251 // CHECK: lddqu 485498096(%edx), %xmm1
252 // CHECK: encoding: [0xf2,0x0f,0xf0,0x8a,0xf0,0x1c,0xf0,0x1c]
253 lddqu 485498096(%edx), %xmm1
255 // CHECK: lddqu 485498096, %xmm1
256 // CHECK: encoding: [0xf2,0x0f,0xf0,0x0d,0xf0,0x1c,0xf0,0x1c]
257 lddqu 485498096, %xmm1
259 // CHECK: lddqu 64(%edx,%eax), %xmm1
260 // CHECK: encoding: [0xf2,0x0f,0xf0,0x4c,0x02,0x40]
261 lddqu 64(%edx,%eax), %xmm1
263 // CHECK: lddqu (%edx), %xmm1
264 // CHECK: encoding: [0xf2,0x0f,0xf0,0x0a]
265 lddqu (%edx), %xmm1
267 // CHECK: monitor
268 // CHECK: encoding: [0x0f,0x01,0xc8]
269 monitor
271 // CHECK: movddup -485498096(%edx,%eax,4), %xmm1
272 // CHECK: encoding: [0xf2,0x0f,0x12,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
273 movddup -485498096(%edx,%eax,4), %xmm1
275 // CHECK: movddup 485498096(%edx,%eax,4), %xmm1
276 // CHECK: encoding: [0xf2,0x0f,0x12,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
277 movddup 485498096(%edx,%eax,4), %xmm1
279 // CHECK: movddup 485498096(%edx), %xmm1
280 // CHECK: encoding: [0xf2,0x0f,0x12,0x8a,0xf0,0x1c,0xf0,0x1c]
281 movddup 485498096(%edx), %xmm1
283 // CHECK: movddup 485498096, %xmm1
284 // CHECK: encoding: [0xf2,0x0f,0x12,0x0d,0xf0,0x1c,0xf0,0x1c]
285 movddup 485498096, %xmm1
287 // CHECK: movddup 64(%edx,%eax), %xmm1
288 // CHECK: encoding: [0xf2,0x0f,0x12,0x4c,0x02,0x40]
289 movddup 64(%edx,%eax), %xmm1
291 // CHECK: movddup (%edx), %xmm1
292 // CHECK: encoding: [0xf2,0x0f,0x12,0x0a]
293 movddup (%edx), %xmm1
295 // CHECK: movddup %xmm1, %xmm1
296 // CHECK: encoding: [0xf2,0x0f,0x12,0xc9]
297 movddup %xmm1, %xmm1
299 // CHECK: movshdup -485498096(%edx,%eax,4), %xmm1
300 // CHECK: encoding: [0xf3,0x0f,0x16,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
301 movshdup -485498096(%edx,%eax,4), %xmm1
303 // CHECK: movshdup 485498096(%edx,%eax,4), %xmm1
304 // CHECK: encoding: [0xf3,0x0f,0x16,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
305 movshdup 485498096(%edx,%eax,4), %xmm1
307 // CHECK: movshdup 485498096(%edx), %xmm1
308 // CHECK: encoding: [0xf3,0x0f,0x16,0x8a,0xf0,0x1c,0xf0,0x1c]
309 movshdup 485498096(%edx), %xmm1
311 // CHECK: movshdup 485498096, %xmm1
312 // CHECK: encoding: [0xf3,0x0f,0x16,0x0d,0xf0,0x1c,0xf0,0x1c]
313 movshdup 485498096, %xmm1
315 // CHECK: movshdup 64(%edx,%eax), %xmm1
316 // CHECK: encoding: [0xf3,0x0f,0x16,0x4c,0x02,0x40]
317 movshdup 64(%edx,%eax), %xmm1
319 // CHECK: movshdup (%edx), %xmm1
320 // CHECK: encoding: [0xf3,0x0f,0x16,0x0a]
321 movshdup (%edx), %xmm1
323 // CHECK: movshdup %xmm1, %xmm1
324 // CHECK: encoding: [0xf3,0x0f,0x16,0xc9]
325 movshdup %xmm1, %xmm1
327 // CHECK: movsldup -485498096(%edx,%eax,4), %xmm1
328 // CHECK: encoding: [0xf3,0x0f,0x12,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
329 movsldup -485498096(%edx,%eax,4), %xmm1
331 // CHECK: movsldup 485498096(%edx,%eax,4), %xmm1
332 // CHECK: encoding: [0xf3,0x0f,0x12,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
333 movsldup 485498096(%edx,%eax,4), %xmm1
335 // CHECK: movsldup 485498096(%edx), %xmm1
336 // CHECK: encoding: [0xf3,0x0f,0x12,0x8a,0xf0,0x1c,0xf0,0x1c]
337 movsldup 485498096(%edx), %xmm1
339 // CHECK: movsldup 485498096, %xmm1
340 // CHECK: encoding: [0xf3,0x0f,0x12,0x0d,0xf0,0x1c,0xf0,0x1c]
341 movsldup 485498096, %xmm1
343 // CHECK: movsldup 64(%edx,%eax), %xmm1
344 // CHECK: encoding: [0xf3,0x0f,0x12,0x4c,0x02,0x40]
345 movsldup 64(%edx,%eax), %xmm1
347 // CHECK: movsldup (%edx), %xmm1
348 // CHECK: encoding: [0xf3,0x0f,0x12,0x0a]
349 movsldup (%edx), %xmm1
351 // CHECK: movsldup %xmm1, %xmm1
352 // CHECK: encoding: [0xf3,0x0f,0x12,0xc9]
353 movsldup %xmm1, %xmm1
355 // CHECK: mwait
356 // CHECK: encoding: [0x0f,0x01,0xc9]
357 mwait