Lines Matching +full:0 +full:x1f80

15 ; SSE:       # %bb.0:
16 ; SSE-NEXT: addps %xmm1, %xmm0 # encoding: [0x0f,0x58,0xc1]
17 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
20 ; AVX1: # %bb.0:
21 ; AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x58,0xc1]
22 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
25 ; AVX512: # %bb.0:
26 ; AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x58,0xc1]
27 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
34 ; SSE: # %bb.0:
35 ; SSE-NEXT: addss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x58,0xc1]
36 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
39 ; AVX1: # %bb.0:
40 ; AVX1-NEXT: vaddss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x58,0xc1]
41 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
44 ; AVX512: # %bb.0:
45 ; AVX512-NEXT: vaddss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x58,0xc1]
46 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
47 %ext0 = extractelement <4 x float> %a0, i32 0
48 %ext1 = extractelement <4 x float> %a1, i32 0
50 %res = insertelement <4 x float> %a0, float %fadd, i32 0
56 ; SSE: # %bb.0:
57 ; SSE-NEXT: andps %xmm1, %xmm0 # encoding: [0x0f,0x54,0xc1]
58 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
61 ; AVX1: # %bb.0:
62 ; AVX1-NEXT: vandps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x54,0xc1]
63 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
66 ; AVX512: # %bb.0:
67 ; AVX512-NEXT: vandps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x54,0xc1]
68 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
78 ; X86-SSE1: # %bb.0:
79 ; X86-SSE1-NEXT: andnps %xmm1, %xmm0 # encoding: [0x0f,0x55,0xc1]
80 ; X86-SSE1-NEXT: retl # encoding: [0xc3]
83 ; X86-SSE2: # %bb.0:
84 ; X86-SSE2-NEXT: pcmpeqd %xmm2, %xmm2 # encoding: [0x66,0x0f,0x76,0xd2]
85 ; X86-SSE2-NEXT: pxor %xmm2, %xmm0 # encoding: [0x66,0x0f,0xef,0xc2]
86 ; X86-SSE2-NEXT: pand %xmm1, %xmm0 # encoding: [0x66,0x0f,0xdb,0xc1]
87 ; X86-SSE2-NEXT: retl # encoding: [0xc3]
90 ; AVX1: # %bb.0:
91 ; AVX1-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2 # encoding: [0xc5,0xe9,0x76,0xd2]
92 ; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm0 # encoding: [0xc5,0xf9,0xef,0xc2]
93 ; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf9,0xdb,0xc1]
94 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
97 ; AVX512: # %bb.0:
98 ; AVX512-NEXT: vpternlogq $15, %xmm0, %xmm0, %xmm0 # encoding: [0x62,0xf3,0xfd,0x08,0x25,0xc0,0x0f]
100 ; AVX512-NEXT: vpand %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0xdb,0xc1]
101 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
104 ; X64-SSE1: # %bb.0:
105 ; X64-SSE1-NEXT: andnps %xmm1, %xmm0 # encoding: [0x0f,0x55,0xc1]
106 ; X64-SSE1-NEXT: retq # encoding: [0xc3]
109 ; X64-SSE2: # %bb.0:
110 ; X64-SSE2-NEXT: pcmpeqd %xmm2, %xmm2 # encoding: [0x66,0x0f,0x76,0xd2]
111 ; X64-SSE2-NEXT: pxor %xmm2, %xmm0 # encoding: [0x66,0x0f,0xef,0xc2]
112 ; X64-SSE2-NEXT: pand %xmm1, %xmm0 # encoding: [0x66,0x0f,0xdb,0xc1]
113 ; X64-SSE2-NEXT: retq # encoding: [0xc3]
124 ; SSE: # %bb.0:
125 ; SSE-NEXT: cmpeqps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x00]
126 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
129 ; AVX1: # %bb.0:
130 ; AVX1-NEXT: vcmpeqps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x00]
131 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
134 ; AVX512: # %bb.0:
135 ; AVX512-NEXT: vcmpeqps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x00]
136 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
137 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
146 ; SSE: # %bb.0:
147 ; SSE-NEXT: cmpeqss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x00]
148 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
151 ; AVX: # %bb.0:
152 ; AVX-NEXT: vcmpeqss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x00]
153 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
154 %res = call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %a0, <4 x float> %a1, i8 0)
161 ; SSE: # %bb.0:
162 ; SSE-NEXT: cmpleps %xmm0, %xmm1 # encoding: [0x0f,0xc2,0xc8,0x02]
163 ; SSE-NEXT: movaps %xmm1, %xmm0 # encoding: [0x0f,0x28,0xc1]
164 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
167 ; AVX1: # %bb.0:
168 ; AVX1-NEXT: vcmpleps %xmm0, %xmm1, %xmm0 # encoding: [0xc5,0xf0,0xc2,0xc0,0x02]
169 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
172 ; AVX512: # %bb.0:
173 ; AVX512-NEXT: vcmpleps %xmm0, %xmm1, %k0 # encoding: [0x62,0xf1,0x74,0x08,0xc2,0xc0,0x02]
174 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
175 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
184 ; SSE: # %bb.0:
185 ; SSE-NEXT: cmpless %xmm0, %xmm1 # encoding: [0xf3,0x0f,0xc2,0xc8,0x02]
186 ; SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
187 ; SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
188 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
191 ; AVX: # %bb.0:
192 ; AVX-NEXT: vcmpless %xmm0, %xmm1, %xmm1 # encoding: [0xc5,0xf2,0xc2,0xc8,0x02]
193 ; AVX-NEXT: vblendps $1, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x0c,0xc1,0x01]
194 ; AVX-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
195 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
203 ; SSE: # %bb.0:
204 ; SSE-NEXT: cmpltps %xmm0, %xmm1 # encoding: [0x0f,0xc2,0xc8,0x01]
205 ; SSE-NEXT: movaps %xmm1, %xmm0 # encoding: [0x0f,0x28,0xc1]
206 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
209 ; AVX1: # %bb.0:
210 ; AVX1-NEXT: vcmpltps %xmm0, %xmm1, %xmm0 # encoding: [0xc5,0xf0,0xc2,0xc0,0x01]
211 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
214 ; AVX512: # %bb.0:
215 ; AVX512-NEXT: vcmpltps %xmm0, %xmm1, %k0 # encoding: [0x62,0xf1,0x74,0x08,0xc2,0xc0,0x01]
216 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
217 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
226 ; SSE: # %bb.0:
227 ; SSE-NEXT: cmpltss %xmm0, %xmm1 # encoding: [0xf3,0x0f,0xc2,0xc8,0x01]
228 ; SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
229 ; SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
230 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
233 ; AVX: # %bb.0:
234 ; AVX-NEXT: vcmpltss %xmm0, %xmm1, %xmm1 # encoding: [0xc5,0xf2,0xc2,0xc8,0x01]
235 ; AVX-NEXT: vblendps $1, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x0c,0xc1,0x01]
236 ; AVX-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
237 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
245 ; SSE: # %bb.0:
246 ; SSE-NEXT: cmpleps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x02]
247 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
250 ; AVX1: # %bb.0:
251 ; AVX1-NEXT: vcmpleps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x02]
252 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
255 ; AVX512: # %bb.0:
256 ; AVX512-NEXT: vcmpleps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x02]
257 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
258 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
267 ; SSE: # %bb.0:
268 ; SSE-NEXT: cmpless %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x02]
269 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
272 ; AVX: # %bb.0:
273 ; AVX-NEXT: vcmpless %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x02]
274 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
281 ; SSE: # %bb.0:
282 ; SSE-NEXT: cmpltps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x01]
283 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
286 ; AVX1: # %bb.0:
287 ; AVX1-NEXT: vcmpltps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x01]
288 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
291 ; AVX512: # %bb.0:
292 ; AVX512-NEXT: vcmpltps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x01]
293 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
294 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
303 ; SSE: # %bb.0:
304 ; SSE-NEXT: cmpltss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x01]
305 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
308 ; AVX: # %bb.0:
309 ; AVX-NEXT: vcmpltss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x01]
310 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
317 ; SSE: # %bb.0:
318 ; SSE-NEXT: cmpneqps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x04]
319 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
322 ; AVX1: # %bb.0:
323 ; AVX1-NEXT: vcmpneqps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x04]
324 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
327 ; AVX512: # %bb.0:
328 ; AVX512-NEXT: vcmpneqps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x04]
329 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
330 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
339 ; SSE: # %bb.0:
340 ; SSE-NEXT: cmpneqss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x04]
341 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
344 ; AVX: # %bb.0:
345 ; AVX-NEXT: vcmpneqss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x04]
346 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
353 ; SSE: # %bb.0:
354 ; SSE-NEXT: cmpnleps %xmm0, %xmm1 # encoding: [0x0f,0xc2,0xc8,0x06]
355 ; SSE-NEXT: movaps %xmm1, %xmm0 # encoding: [0x0f,0x28,0xc1]
356 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
359 ; AVX1: # %bb.0:
360 ; AVX1-NEXT: vcmpnleps %xmm0, %xmm1, %xmm0 # encoding: [0xc5,0xf0,0xc2,0xc0,0x06]
361 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
364 ; AVX512: # %bb.0:
365 ; AVX512-NEXT: vcmpnleps %xmm0, %xmm1, %k0 # encoding: [0x62,0xf1,0x74,0x08,0xc2,0xc0,0x06]
366 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
367 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
376 ; SSE: # %bb.0:
377 ; SSE-NEXT: cmpnless %xmm0, %xmm1 # encoding: [0xf3,0x0f,0xc2,0xc8,0x06]
378 ; SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
379 ; SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
380 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
383 ; AVX: # %bb.0:
384 ; AVX-NEXT: vcmpnless %xmm0, %xmm1, %xmm1 # encoding: [0xc5,0xf2,0xc2,0xc8,0x06]
385 ; AVX-NEXT: vblendps $1, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x0c,0xc1,0x01]
386 ; AVX-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
387 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
395 ; SSE: # %bb.0:
396 ; SSE-NEXT: cmpnltps %xmm0, %xmm1 # encoding: [0x0f,0xc2,0xc8,0x05]
397 ; SSE-NEXT: movaps %xmm1, %xmm0 # encoding: [0x0f,0x28,0xc1]
398 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
401 ; AVX1: # %bb.0:
402 ; AVX1-NEXT: vcmpnltps %xmm0, %xmm1, %xmm0 # encoding: [0xc5,0xf0,0xc2,0xc0,0x05]
403 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
406 ; AVX512: # %bb.0:
407 ; AVX512-NEXT: vcmpnltps %xmm0, %xmm1, %k0 # encoding: [0x62,0xf1,0x74,0x08,0xc2,0xc0,0x05]
408 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
409 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
418 ; SSE: # %bb.0:
419 ; SSE-NEXT: cmpnltss %xmm0, %xmm1 # encoding: [0xf3,0x0f,0xc2,0xc8,0x05]
420 ; SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
421 ; SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
422 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
425 ; AVX: # %bb.0:
426 ; AVX-NEXT: vcmpnltss %xmm0, %xmm1, %xmm1 # encoding: [0xc5,0xf2,0xc2,0xc8,0x05]
427 ; AVX-NEXT: vblendps $1, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x0c,0xc1,0x01]
428 ; AVX-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
429 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
437 ; SSE: # %bb.0:
438 ; SSE-NEXT: cmpnleps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x06]
439 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
442 ; AVX1: # %bb.0:
443 ; AVX1-NEXT: vcmpnleps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x06]
444 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
447 ; AVX512: # %bb.0:
448 ; AVX512-NEXT: vcmpnleps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x06]
449 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
450 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
459 ; SSE: # %bb.0:
460 ; SSE-NEXT: cmpnless %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x06]
461 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
464 ; AVX: # %bb.0:
465 ; AVX-NEXT: vcmpnless %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x06]
466 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
473 ; SSE: # %bb.0:
474 ; SSE-NEXT: cmpnltps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x05]
475 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
478 ; AVX1: # %bb.0:
479 ; AVX1-NEXT: vcmpnltps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x05]
480 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
483 ; AVX512: # %bb.0:
484 ; AVX512-NEXT: vcmpnltps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x05]
485 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
486 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
495 ; SSE: # %bb.0:
496 ; SSE-NEXT: cmpnltss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x05]
497 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
500 ; AVX: # %bb.0:
501 ; AVX-NEXT: vcmpnltss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x05]
502 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
509 ; SSE: # %bb.0:
510 ; SSE-NEXT: cmpordps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x07]
511 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
514 ; AVX1: # %bb.0:
515 ; AVX1-NEXT: vcmpordps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x07]
516 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
519 ; AVX512: # %bb.0:
520 ; AVX512-NEXT: vcmpordps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x07]
521 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
522 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
531 ; SSE: # %bb.0:
532 ; SSE-NEXT: cmpordss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x07]
533 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
536 ; AVX: # %bb.0:
537 ; AVX-NEXT: vcmpordss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x07]
538 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
545 ; SSE: # %bb.0:
546 ; SSE-NEXT: cmpunordps %xmm1, %xmm0 # encoding: [0x0f,0xc2,0xc1,0x03]
547 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
550 ; AVX1: # %bb.0:
551 ; AVX1-NEXT: vcmpunordps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc2,0xc1,0x03]
552 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
555 ; AVX512: # %bb.0:
556 ; AVX512-NEXT: vcmpunordps %xmm1, %xmm0, %k0 # encoding: [0x62,0xf1,0x7c,0x08,0xc2,0xc1,0x03]
557 ; AVX512-NEXT: vpmovm2d %k0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x38,0xc0]
558 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
567 ; SSE: # %bb.0:
568 ; SSE-NEXT: cmpunordss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0xc2,0xc1,0x03]
569 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
572 ; AVX: # %bb.0:
573 ; AVX-NEXT: vcmpunordss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0xc2,0xc1,0x03]
574 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
581 ; SSE: # %bb.0:
582 ; SSE-NEXT: comiss %xmm1, %xmm0 # encoding: [0x0f,0x2f,0xc1]
583 ; SSE-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
584 ; SSE-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
585 ; SSE-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
586 ; SSE-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
587 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
590 ; AVX1: # %bb.0:
591 ; AVX1-NEXT: vcomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2f,0xc1]
592 ; AVX1-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
593 ; AVX1-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
594 ; AVX1-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
595 ; AVX1-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
596 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
599 ; AVX512: # %bb.0:
600 ; AVX512-NEXT: vcomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
601 ; AVX512-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
602 ; AVX512-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
603 ; AVX512-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
604 ; AVX512-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
605 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
613 ; SSE: # %bb.0:
614 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
615 ; SSE-NEXT: comiss %xmm1, %xmm0 # encoding: [0x0f,0x2f,0xc1]
616 ; SSE-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
617 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
620 ; AVX1: # %bb.0:
621 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
622 ; AVX1-NEXT: vcomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2f,0xc1]
623 ; AVX1-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
624 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
627 ; AVX512: # %bb.0:
628 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
629 ; AVX512-NEXT: vcomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
630 ; AVX512-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
631 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
639 ; SSE: # %bb.0:
640 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
641 ; SSE-NEXT: comiss %xmm1, %xmm0 # encoding: [0x0f,0x2f,0xc1]
642 ; SSE-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
643 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
646 ; AVX1: # %bb.0:
647 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
648 ; AVX1-NEXT: vcomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2f,0xc1]
649 ; AVX1-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
650 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
653 ; AVX512: # %bb.0:
654 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
655 ; AVX512-NEXT: vcomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
656 ; AVX512-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
657 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
665 ; SSE: # %bb.0:
666 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
667 ; SSE-NEXT: comiss %xmm0, %xmm1 # encoding: [0x0f,0x2f,0xc8]
668 ; SSE-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
669 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
672 ; AVX1: # %bb.0:
673 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
674 ; AVX1-NEXT: vcomiss %xmm0, %xmm1 # encoding: [0xc5,0xf8,0x2f,0xc8]
675 ; AVX1-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
676 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
679 ; AVX512: # %bb.0:
680 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
681 ; AVX512-NEXT: vcomiss %xmm0, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
682 ; AVX512-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
683 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
691 ; SSE: # %bb.0:
692 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
693 ; SSE-NEXT: comiss %xmm0, %xmm1 # encoding: [0x0f,0x2f,0xc8]
694 ; SSE-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
695 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
698 ; AVX1: # %bb.0:
699 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
700 ; AVX1-NEXT: vcomiss %xmm0, %xmm1 # encoding: [0xc5,0xf8,0x2f,0xc8]
701 ; AVX1-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
702 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
705 ; AVX512: # %bb.0:
706 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
707 ; AVX512-NEXT: vcomiss %xmm0, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
708 ; AVX512-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
709 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
717 ; SSE: # %bb.0:
718 ; SSE-NEXT: comiss %xmm1, %xmm0 # encoding: [0x0f,0x2f,0xc1]
719 ; SSE-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
720 ; SSE-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
721 ; SSE-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
722 ; SSE-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
723 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
726 ; AVX1: # %bb.0:
727 ; AVX1-NEXT: vcomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2f,0xc1]
728 ; AVX1-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
729 ; AVX1-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
730 ; AVX1-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
731 ; AVX1-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
732 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
735 ; AVX512: # %bb.0:
736 ; AVX512-NEXT: vcomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
737 ; AVX512-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
738 ; AVX512-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
739 ; AVX512-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
740 ; AVX512-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
741 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
749 ; SSE: # %bb.0:
750 ; SSE-NEXT: cvtss2si %xmm0, %eax # encoding: [0xf3,0x0f,0x2d,0xc0]
751 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
754 ; AVX1: # %bb.0:
755 ; AVX1-NEXT: vcvtss2si %xmm0, %eax # encoding: [0xc5,0xfa,0x2d,0xc0]
756 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
759 ; AVX512: # %bb.0:
760 ; AVX512-NEXT: vcvtss2si %xmm0, %eax # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2d,0xc0]
761 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
769 ; X86-SSE: # %bb.0:
770 ; X86-SSE-NEXT: cvtsi2ssl {{[0-9]+}}(%esp), %xmm0 # encoding: [0xf3,0x0f,0x2a,0x44,0x24,0x04]
771 ; X86-SSE-NEXT: retl # encoding: [0xc3]
774 ; X86-AVX1: # %bb.0:
775 ; X86-AVX1-NEXT: vcvtsi2ssl {{[0-9]+}}(%esp), %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x2a,0x44,0x24,0x04]
776 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
779 ; X86-AVX512: # %bb.0:
780 ; X86-AVX512-NEXT: vcvtsi2ssl {{[0-9]+}}(%esp), %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2a,0x44,0x24,0x04]
781 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
784 ; X64-SSE: # %bb.0:
785 ; X64-SSE-NEXT: cvtsi2ss %edi, %xmm0 # encoding: [0xf3,0x0f,0x2a,0xc7]
786 ; X64-SSE-NEXT: retq # encoding: [0xc3]
789 ; X64-AVX1: # %bb.0:
790 ; X64-AVX1-NEXT: vcvtsi2ss %edi, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x2a,0xc7]
791 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
794 ; X64-AVX512: # %bb.0:
795 ; X64-AVX512-NEXT: vcvtsi2ss %edi, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2a,0xc7]
796 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
804 ; X86-SSE: # %bb.0:
805 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
806 ; X86-SSE-NEXT: movss %xmm0, (%esp) # encoding: [0xf3,0x0f,0x11,0x04,0x24]
807 ; X86-SSE-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
808 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
809 ; X86-SSE-NEXT: retl # encoding: [0xc3]
812 ; X86-AVX1: # %bb.0:
813 ; X86-AVX1-NEXT: pushl %eax # encoding: [0x50]
814 ; X86-AVX1-NEXT: vmovss %xmm0, (%esp) # encoding: [0xc5,0xfa,0x11,0x04,0x24]
815 ; X86-AVX1-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
816 ; X86-AVX1-NEXT: popl %eax # encoding: [0x58]
817 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
820 ; X86-AVX512: # %bb.0:
821 ; X86-AVX512-NEXT: pushl %eax # encoding: [0x50]
822 ; X86-AVX512-NEXT: vmovss %xmm0, (%esp) # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x04,0x24]
823 ; X86-AVX512-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
824 ; X86-AVX512-NEXT: popl %eax # encoding: [0x58]
825 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
828 ; X64: # %bb.0:
829 ; X64-NEXT: retq # encoding: [0xc3]
830 %res = extractelement <4 x float> %a0, i32 0
836 ; SSE: # %bb.0:
837 ; SSE-NEXT: cvtss2si %xmm0, %eax # encoding: [0xf3,0x0f,0x2d,0xc0]
838 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
841 ; AVX1: # %bb.0:
842 ; AVX1-NEXT: vcvtss2si %xmm0, %eax # encoding: [0xc5,0xfa,0x2d,0xc0]
843 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
846 ; AVX512: # %bb.0:
847 ; AVX512-NEXT: vcvtss2si %xmm0, %eax # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2d,0xc0]
848 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
855 ; SSE: # %bb.0:
856 ; SSE-NEXT: cvttss2si %xmm0, %eax # encoding: [0xf3,0x0f,0x2c,0xc0]
857 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
860 ; AVX1: # %bb.0:
861 ; AVX1-NEXT: vcvttss2si %xmm0, %eax # encoding: [0xc5,0xfa,0x2c,0xc0]
862 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
865 ; AVX512: # %bb.0:
866 ; AVX512-NEXT: vcvttss2si %xmm0, %eax # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2c,0xc0]
867 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
875 ; SSE: # %bb.0:
876 ; SSE-NEXT: cvttss2si %xmm0, %eax # encoding: [0xf3,0x0f,0x2c,0xc0]
877 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
880 ; AVX1: # %bb.0:
881 ; AVX1-NEXT: vcvttss2si %xmm0, %eax # encoding: [0xc5,0xfa,0x2c,0xc0]
882 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
885 ; AVX512: # %bb.0:
886 ; AVX512-NEXT: vcvttss2si %xmm0, %eax # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2c,0xc0]
887 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
894 ; SSE: # %bb.0:
895 ; SSE-NEXT: divps %xmm1, %xmm0 # encoding: [0x0f,0x5e,0xc1]
896 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
899 ; AVX1: # %bb.0:
900 ; AVX1-NEXT: vdivps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x5e,0xc1]
901 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
904 ; AVX512: # %bb.0:
905 ; AVX512-NEXT: vdivps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5e,0xc1]
906 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
913 ; SSE: # %bb.0:
914 ; SSE-NEXT: divss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x5e,0xc1]
915 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
918 ; AVX1: # %bb.0:
919 ; AVX1-NEXT: vdivss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x5e,0xc1]
920 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
923 ; AVX512: # %bb.0:
924 ; AVX512-NEXT: vdivss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5e,0xc1]
925 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
926 %ext0 = extractelement <4 x float> %a0, i32 0
927 %ext1 = extractelement <4 x float> %a1, i32 0
929 %res = insertelement <4 x float> %a0, float %fdiv, i32 0
935 ; X86-SSE: # %bb.0:
936 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
937 ; X86-SSE-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
938 ; X86-SSE-NEXT: stmxcsr (%eax) # encoding: [0x0f,0xae,0x18]
939 ; X86-SSE-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
940 ; X86-SSE-NEXT: andl $8064, %eax # encoding: [0x25,0x80,0x1f,0x00,0x00]
941 ; X86-SSE-NEXT: # imm = 0x1F80
942 ; X86-SSE-NEXT: popl %ecx # encoding: [0x59]
943 ; X86-SSE-NEXT: retl # encoding: [0xc3]
946 ; X86-AVX: # %bb.0:
947 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
948 ; X86-AVX-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
949 ; X86-AVX-NEXT: vstmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x18]
950 ; X86-AVX-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
951 ; X86-AVX-NEXT: andl $8064, %eax # encoding: [0x25,0x80,0x1f,0x00,0x00]
952 ; X86-AVX-NEXT: # imm = 0x1F80
953 ; X86-AVX-NEXT: popl %ecx # encoding: [0x59]
954 ; X86-AVX-NEXT: retl # encoding: [0xc3]
957 ; X64-SSE: # %bb.0:
958 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
959 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
960 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
961 ; X64-SSE-NEXT: andl $8064, %eax # encoding: [0x25,0x80,0x1f,0x00,0x00]
962 ; X64-SSE-NEXT: # imm = 0x1F80
963 ; X64-SSE-NEXT: retq # encoding: [0xc3]
966 ; X64-AVX: # %bb.0:
967 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
968 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
969 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
970 ; X64-AVX-NEXT: andl $8064, %eax # encoding: [0x25,0x80,0x1f,0x00,0x00]
971 ; X64-AVX-NEXT: # imm = 0x1F80
972 ; X64-AVX-NEXT: retq # encoding: [0xc3]
984 ; X86-SSE: # %bb.0:
985 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
986 ; X86-SSE-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
987 ; X86-SSE-NEXT: stmxcsr (%eax) # encoding: [0x0f,0xae,0x18]
988 ; X86-SSE-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
989 ; X86-SSE-NEXT: andl $63, %eax # encoding: [0x83,0xe0,0x3f]
990 ; X86-SSE-NEXT: popl %ecx # encoding: [0x59]
991 ; X86-SSE-NEXT: retl # encoding: [0xc3]
994 ; X86-AVX: # %bb.0:
995 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
996 ; X86-AVX-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
997 ; X86-AVX-NEXT: vstmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x18]
998 ; X86-AVX-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
999 ; X86-AVX-NEXT: andl $63, %eax # encoding: [0x83,0xe0,0x3f]
1000 ; X86-AVX-NEXT: popl %ecx # encoding: [0x59]
1001 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1004 ; X64-SSE: # %bb.0:
1005 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1006 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1007 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1008 ; X64-SSE-NEXT: andl $63, %eax # encoding: [0x83,0xe0,0x3f]
1009 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1012 ; X64-AVX: # %bb.0:
1013 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1014 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1015 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1016 ; X64-AVX-NEXT: andl $63, %eax # encoding: [0x83,0xe0,0x3f]
1017 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1028 ; X86-SSE: # %bb.0:
1029 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1030 ; X86-SSE-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1031 ; X86-SSE-NEXT: stmxcsr (%eax) # encoding: [0x0f,0xae,0x18]
1032 ; X86-SSE-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1033 ; X86-SSE-NEXT: andl $32768, %eax # encoding: [0x25,0x00,0x80,0x00,0x00]
1034 ; X86-SSE-NEXT: # imm = 0x8000
1035 ; X86-SSE-NEXT: popl %ecx # encoding: [0x59]
1036 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1039 ; X86-AVX: # %bb.0:
1040 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1041 ; X86-AVX-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1042 ; X86-AVX-NEXT: vstmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x18]
1043 ; X86-AVX-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1044 ; X86-AVX-NEXT: andl $32768, %eax # encoding: [0x25,0x00,0x80,0x00,0x00]
1045 ; X86-AVX-NEXT: # imm = 0x8000
1046 ; X86-AVX-NEXT: popl %ecx # encoding: [0x59]
1047 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1050 ; X64-SSE: # %bb.0:
1051 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1052 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1053 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1054 ; X64-SSE-NEXT: andl $32768, %eax # encoding: [0x25,0x00,0x80,0x00,0x00]
1055 ; X64-SSE-NEXT: # imm = 0x8000
1056 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1059 ; X64-AVX: # %bb.0:
1060 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1061 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1062 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1063 ; X64-AVX-NEXT: andl $32768, %eax # encoding: [0x25,0x00,0x80,0x00,0x00]
1064 ; X64-AVX-NEXT: # imm = 0x8000
1065 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1076 ; X86-SSE: # %bb.0:
1077 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1078 ; X86-SSE-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1079 ; X86-SSE-NEXT: stmxcsr (%eax) # encoding: [0x0f,0xae,0x18]
1080 ; X86-SSE-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1081 ; X86-SSE-NEXT: andl $24576, %eax # encoding: [0x25,0x00,0x60,0x00,0x00]
1082 ; X86-SSE-NEXT: # imm = 0x6000
1083 ; X86-SSE-NEXT: popl %ecx # encoding: [0x59]
1084 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1087 ; X86-AVX: # %bb.0:
1088 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1089 ; X86-AVX-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1090 ; X86-AVX-NEXT: vstmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x18]
1091 ; X86-AVX-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1092 ; X86-AVX-NEXT: andl $24576, %eax # encoding: [0x25,0x00,0x60,0x00,0x00]
1093 ; X86-AVX-NEXT: # imm = 0x6000
1094 ; X86-AVX-NEXT: popl %ecx # encoding: [0x59]
1095 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1098 ; X64-SSE: # %bb.0:
1099 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1100 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1101 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1102 ; X64-SSE-NEXT: andl $24576, %eax # encoding: [0x25,0x00,0x60,0x00,0x00]
1103 ; X64-SSE-NEXT: # imm = 0x6000
1104 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1107 ; X64-AVX: # %bb.0:
1108 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1109 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1110 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1111 ; X64-AVX-NEXT: andl $24576, %eax # encoding: [0x25,0x00,0x60,0x00,0x00]
1112 ; X64-AVX-NEXT: # imm = 0x6000
1113 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1124 ; X86-SSE: # %bb.0:
1125 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1126 ; X86-SSE-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1127 ; X86-SSE-NEXT: stmxcsr (%eax) # encoding: [0x0f,0xae,0x18]
1128 ; X86-SSE-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1129 ; X86-SSE-NEXT: popl %ecx # encoding: [0x59]
1130 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1133 ; X86-AVX: # %bb.0:
1134 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1135 ; X86-AVX-NEXT: movl %esp, %eax # encoding: [0x89,0xe0]
1136 ; X86-AVX-NEXT: vstmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x18]
1137 ; X86-AVX-NEXT: movl (%esp), %eax # encoding: [0x8b,0x04,0x24]
1138 ; X86-AVX-NEXT: popl %ecx # encoding: [0x59]
1139 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1142 ; X64-SSE: # %bb.0:
1143 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1144 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1145 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1146 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1149 ; X64-AVX: # %bb.0:
1150 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1151 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1152 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %eax # encoding: [0x8b,0x44,0x24,0xfc]
1153 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1163 ; X86-SSE: # %bb.0:
1164 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1165 ; X86-SSE-NEXT: movaps (%eax), %xmm0 # encoding: [0x0f,0x28,0x00]
1166 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1169 ; X86-AVX1: # %bb.0:
1170 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1171 ; X86-AVX1-NEXT: vmovaps (%eax), %xmm0 # encoding: [0xc5,0xf8,0x28,0x00]
1172 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1175 ; X86-AVX512: # %bb.0:
1176 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1177 ; X86-AVX512-NEXT: vmovaps (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x00]
1178 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1181 ; X64-SSE: # %bb.0:
1182 ; X64-SSE-NEXT: movaps (%rdi), %xmm0 # encoding: [0x0f,0x28,0x07]
1183 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1186 ; X64-AVX1: # %bb.0:
1187 ; X64-AVX1-NEXT: vmovaps (%rdi), %xmm0 # encoding: [0xc5,0xf8,0x28,0x07]
1188 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1191 ; X64-AVX512: # %bb.0:
1192 ; X64-AVX512-NEXT: vmovaps (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
1193 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1201 ; X86-SSE: # %bb.0:
1202 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1203 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1204 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x00]
1205 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
1206 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
1207 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1210 ; X86-AVX1: # %bb.0:
1211 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1212 ; X86-AVX1-NEXT: vbroadcastss (%eax), %xmm0 # encoding: [0xc4,0xe2,0x79,0x18,0x00]
1213 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1216 ; X86-AVX512: # %bb.0:
1217 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1218 ; X86-AVX512-NEXT: vbroadcastss (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x00]
1219 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1222 ; X64-SSE: # %bb.0:
1223 ; X64-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1224 ; X64-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x07]
1225 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
1226 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
1227 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1230 ; X64-AVX1: # %bb.0:
1231 ; X64-AVX1-NEXT: vbroadcastss (%rdi), %xmm0 # encoding: [0xc4,0xe2,0x79,0x18,0x07]
1232 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1235 ; X64-AVX512: # %bb.0:
1236 ; X64-AVX512-NEXT: vbroadcastss (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x07]
1237 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1239 %res0 = insertelement <4 x float> undef, float %ld, i32 0
1248 ; X86-SSE: # %bb.0:
1249 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1250 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1251 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x00]
1252 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1255 ; X86-AVX1: # %bb.0:
1256 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1257 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1258 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x00]
1259 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1262 ; X86-AVX512: # %bb.0:
1263 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1264 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1265 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x00]
1266 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1269 ; X64-SSE: # %bb.0:
1270 ; X64-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1271 ; X64-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x07]
1272 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1275 ; X64-AVX1: # %bb.0:
1276 ; X64-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1277 ; X64-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x07]
1278 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1281 ; X64-AVX512: # %bb.0:
1282 ; X64-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1283 ; X64-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
1284 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1286 %res0 = insertelement <4 x float> undef, float %ld, i32 0
1295 ; X86-SSE: # %bb.0:
1296 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1297 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1298 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x00]
1299 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
1300 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
1301 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1304 ; X86-AVX1: # %bb.0:
1305 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1306 ; X86-AVX1-NEXT: vbroadcastss (%eax), %xmm0 # encoding: [0xc4,0xe2,0x79,0x18,0x00]
1307 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1310 ; X86-AVX512: # %bb.0:
1311 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1312 ; X86-AVX512-NEXT: vbroadcastss (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x00]
1313 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1316 ; X64-SSE: # %bb.0:
1317 ; X64-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1318 ; X64-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x07]
1319 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
1320 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
1321 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1324 ; X64-AVX1: # %bb.0:
1325 ; X64-AVX1-NEXT: vbroadcastss (%rdi), %xmm0 # encoding: [0xc4,0xe2,0x79,0x18,0x07]
1326 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1329 ; X64-AVX512: # %bb.0:
1330 ; X64-AVX512-NEXT: vbroadcastss (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x07]
1331 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1333 %res0 = insertelement <4 x float> undef, float %ld, i32 0
1342 ; X86-SSE: # %bb.0:
1343 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1344 ; X86-SSE-NEXT: movhps (%eax), %xmm0 # encoding: [0x0f,0x16,0x00]
1345 ; X86-SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1346 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1349 ; X86-AVX1: # %bb.0:
1350 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1351 ; X86-AVX1-NEXT: vmovhps (%eax), %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x16,0x00]
1352 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1353 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1356 ; X86-AVX512: # %bb.0:
1357 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1358 ; X86-AVX512-NEXT: vmovhps (%eax), %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x16,0x00]
1359 ; X86-AVX512-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1360 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1363 ; X64-SSE: # %bb.0:
1364 ; X64-SSE-NEXT: movhps (%rdi), %xmm0 # encoding: [0x0f,0x16,0x07]
1365 ; X64-SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1366 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1369 ; X64-AVX1: # %bb.0:
1370 ; X64-AVX1-NEXT: vmovhps (%rdi), %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x16,0x07]
1371 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1372 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1375 ; X64-AVX512: # %bb.0:
1376 ; X64-AVX512-NEXT: vmovhps (%rdi), %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x16,0x07]
1377 ; X64-AVX512-NEXT: # xmm0 = xmm0[0,1],mem[0,1]
1378 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1381 %ext = shufflevector <2 x float> %ld, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
1382 %res = shufflevector <4 x float> %a0, <4 x float> %ext, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
1388 ; X86-SSE: # %bb.0:
1389 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1390 ; X86-SSE-NEXT: movlps (%eax), %xmm0 # encoding: [0x0f,0x12,0x00]
1391 ; X86-SSE-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1392 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1395 ; X86-AVX1: # %bb.0:
1396 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1397 ; X86-AVX1-NEXT: vmovlps (%eax), %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x12,0x00]
1398 ; X86-AVX1-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1399 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1402 ; X86-AVX512: # %bb.0:
1403 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1404 ; X86-AVX512-NEXT: vmovlps (%eax), %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x12,0x00]
1405 ; X86-AVX512-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1406 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1409 ; X64-SSE: # %bb.0:
1410 ; X64-SSE-NEXT: movlps (%rdi), %xmm0 # encoding: [0x0f,0x12,0x07]
1411 ; X64-SSE-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1412 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1415 ; X64-AVX1: # %bb.0:
1416 ; X64-AVX1-NEXT: vmovlps (%rdi), %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x12,0x07]
1417 ; X64-AVX1-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1418 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1421 ; X64-AVX512: # %bb.0:
1422 ; X64-AVX512-NEXT: vmovlps (%rdi), %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x12,0x07]
1423 ; X64-AVX512-NEXT: # xmm0 = mem[0,1],xmm0[2,3]
1424 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1427 %ext = shufflevector <2 x float> %ld, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
1434 ; X86-SSE: # %bb.0:
1435 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1436 ; X86-SSE-NEXT: movaps (%eax), %xmm0 # encoding: [0x0f,0x28,0x00]
1437 ; X86-SSE-NEXT: shufps $27, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x1b]
1438 ; X86-SSE-NEXT: # xmm0 = xmm0[3,2,1,0]
1439 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1442 ; X86-AVX1: # %bb.0:
1443 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1444 ; X86-AVX1-NEXT: vpermilps $27, (%eax), %xmm0 # encoding: [0xc4,0xe3,0x79,0x04,0x00,0x1b]
1445 ; X86-AVX1-NEXT: # xmm0 = mem[3,2,1,0]
1446 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1449 ; X86-AVX512: # %bb.0:
1450 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1451 ; X86-AVX512-NEXT: vpermilps $27, (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x04,0x00,0x1b]
1452 ; X86-AVX512-NEXT: # xmm0 = mem[3,2,1,0]
1453 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1456 ; X64-SSE: # %bb.0:
1457 ; X64-SSE-NEXT: movaps (%rdi), %xmm0 # encoding: [0x0f,0x28,0x07]
1458 ; X64-SSE-NEXT: shufps $27, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x1b]
1459 ; X64-SSE-NEXT: # xmm0 = xmm0[3,2,1,0]
1460 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1463 ; X64-AVX1: # %bb.0:
1464 ; X64-AVX1-NEXT: vpermilps $27, (%rdi), %xmm0 # encoding: [0xc4,0xe3,0x79,0x04,0x07,0x1b]
1465 ; X64-AVX1-NEXT: # xmm0 = mem[3,2,1,0]
1466 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1469 ; X64-AVX512: # %bb.0:
1470 ; X64-AVX512-NEXT: vpermilps $27, (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x04,0x07,0x1b]
1471 ; X64-AVX512-NEXT: # xmm0 = mem[3,2,1,0]
1472 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1475 %res = shufflevector <4 x float> %ld, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
1481 ; X86-SSE: # %bb.0:
1482 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1483 ; X86-SSE-NEXT: movups (%eax), %xmm0 # encoding: [0x0f,0x10,0x00]
1484 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1487 ; X86-AVX1: # %bb.0:
1488 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1489 ; X86-AVX1-NEXT: vmovups (%eax), %xmm0 # encoding: [0xc5,0xf8,0x10,0x00]
1490 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
1493 ; X86-AVX512: # %bb.0:
1494 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1495 ; X86-AVX512-NEXT: vmovups (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x00]
1496 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
1499 ; X64-SSE: # %bb.0:
1500 ; X64-SSE-NEXT: movups (%rdi), %xmm0 # encoding: [0x0f,0x10,0x07]
1501 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1504 ; X64-AVX1: # %bb.0:
1505 ; X64-AVX1-NEXT: vmovups (%rdi), %xmm0 # encoding: [0xc5,0xf8,0x10,0x07]
1506 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
1509 ; X64-AVX512: # %bb.0:
1510 ; X64-AVX512-NEXT: vmovups (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x07]
1511 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
1519 ; SSE: # %bb.0:
1520 ; SSE-NEXT: maxps %xmm1, %xmm0 # encoding: [0x0f,0x5f,0xc1]
1521 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1524 ; AVX1: # %bb.0:
1525 ; AVX1-NEXT: vmaxps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x5f,0xc1]
1526 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1529 ; AVX512: # %bb.0:
1530 ; AVX512-NEXT: vmaxps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5f,0xc1]
1531 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1539 ; SSE: # %bb.0:
1540 ; SSE-NEXT: maxss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x5f,0xc1]
1541 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1544 ; AVX1: # %bb.0:
1545 ; AVX1-NEXT: vmaxss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x5f,0xc1]
1546 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1549 ; AVX512: # %bb.0:
1550 ; AVX512-NEXT: vmaxss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5f,0xc1]
1551 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1559 ; SSE: # %bb.0:
1560 ; SSE-NEXT: minps %xmm1, %xmm0 # encoding: [0x0f,0x5d,0xc1]
1561 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1564 ; AVX1: # %bb.0:
1565 ; AVX1-NEXT: vminps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x5d,0xc1]
1566 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1569 ; AVX512: # %bb.0:
1570 ; AVX512-NEXT: vminps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5d,0xc1]
1571 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1579 ; SSE: # %bb.0:
1580 ; SSE-NEXT: minss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x5d,0xc1]
1581 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1584 ; AVX1: # %bb.0:
1585 ; AVX1-NEXT: vminss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x5d,0xc1]
1586 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1589 ; AVX512: # %bb.0:
1590 ; AVX512-NEXT: vminss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5d,0xc1]
1591 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1599 ; SSE: # %bb.0:
1600 ; SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
1601 ; SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
1602 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1605 ; AVX: # %bb.0:
1606 ; AVX-NEXT: vblendps $1, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x0c,0xc1,0x01]
1607 ; AVX-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
1608 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1615 ; SSE: # %bb.0:
1616 ; SSE-NEXT: movhlps %xmm1, %xmm0 # encoding: [0x0f,0x12,0xc1]
1618 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1621 ; AVX1: # %bb.0:
1622 ; AVX1-NEXT: vunpckhpd %xmm0, %xmm1, %xmm0 # encoding: [0xc5,0xf1,0x15,0xc0]
1624 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1627 ; AVX512: # %bb.0:
1628 ; AVX512-NEXT: vunpckhpd %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf1,0x15,0xc0]
1630 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1637 ; SSE: # %bb.0:
1638 ; SSE-NEXT: movlhps %xmm1, %xmm0 # encoding: [0x0f,0x16,0xc1]
1639 ; SSE-NEXT: # xmm0 = xmm0[0],xmm1[0]
1640 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1643 ; AVX1: # %bb.0:
1644 ; AVX1-NEXT: vmovlhps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x16,0xc1]
1645 ; AVX1-NEXT: # xmm0 = xmm0[0],xmm1[0]
1646 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1649 ; AVX512: # %bb.0:
1650 ; AVX512-NEXT: vmovlhps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x16,0xc1]
1651 ; AVX512-NEXT: # xmm0 = xmm0[0],xmm1[0]
1652 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1653 %res = shufflevector <4 x float> %a0, <4 x float> %a1, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
1659 ; SSE: # %bb.0:
1660 ; SSE-NEXT: movmskps %xmm0, %eax # encoding: [0x0f,0x50,0xc0]
1661 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1664 ; AVX: # %bb.0:
1665 ; AVX-NEXT: vmovmskps %xmm0, %eax # encoding: [0xc5,0xf8,0x50,0xc0]
1666 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1674 ; SSE: # %bb.0:
1675 ; SSE-NEXT: mulps %xmm1, %xmm0 # encoding: [0x0f,0x59,0xc1]
1676 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1679 ; AVX1: # %bb.0:
1680 ; AVX1-NEXT: vmulps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x59,0xc1]
1681 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1684 ; AVX512: # %bb.0:
1685 ; AVX512-NEXT: vmulps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x59,0xc1]
1686 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1693 ; SSE: # %bb.0:
1694 ; SSE-NEXT: mulss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x59,0xc1]
1695 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1698 ; AVX1: # %bb.0:
1699 ; AVX1-NEXT: vmulss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x59,0xc1]
1700 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1703 ; AVX512: # %bb.0:
1704 ; AVX512-NEXT: vmulss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x59,0xc1]
1705 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1706 %ext0 = extractelement <4 x float> %a0, i32 0
1707 %ext1 = extractelement <4 x float> %a1, i32 0
1709 %res = insertelement <4 x float> %a0, float %fmul, i32 0
1715 ; SSE: # %bb.0:
1716 ; SSE-NEXT: orps %xmm1, %xmm0 # encoding: [0x0f,0x56,0xc1]
1717 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1720 ; AVX1: # %bb.0:
1721 ; AVX1-NEXT: vorps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x56,0xc1]
1722 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1725 ; AVX512: # %bb.0:
1726 ; AVX512-NEXT: vorps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x56,0xc1]
1727 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1737 ; X86: # %bb.0:
1738 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
1739 ; X86-NEXT: prefetchnta (%eax) # encoding: [0x0f,0x18,0x00]
1740 ; X86-NEXT: retl # encoding: [0xc3]
1743 ; X64: # %bb.0:
1744 ; X64-NEXT: prefetchnta (%rdi) # encoding: [0x0f,0x18,0x07]
1745 ; X64-NEXT: retq # encoding: [0xc3]
1746 call void @llvm.prefetch(ptr %a0, i32 0, i32 0, i32 1)
1753 ; SSE: # %bb.0:
1754 ; SSE-NEXT: rcpps %xmm0, %xmm0 # encoding: [0x0f,0x53,0xc0]
1755 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1758 ; AVX: # %bb.0:
1759 ; AVX-NEXT: vrcpps %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x53,0xc0]
1760 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1768 ; SSE: # %bb.0:
1769 ; SSE-NEXT: rcpss %xmm0, %xmm0 # encoding: [0xf3,0x0f,0x53,0xc0]
1770 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1773 ; AVX: # %bb.0:
1774 ; AVX-NEXT: vrcpss %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x53,0xc0]
1775 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1783 ; SSE: # %bb.0:
1784 ; SSE-NEXT: rsqrtps %xmm0, %xmm0 # encoding: [0x0f,0x52,0xc0]
1785 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1788 ; AVX: # %bb.0:
1789 ; AVX-NEXT: vrsqrtps %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x52,0xc0]
1790 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1798 ; SSE: # %bb.0:
1799 ; SSE-NEXT: rsqrtss %xmm0, %xmm0 # encoding: [0xf3,0x0f,0x52,0xc0]
1800 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1803 ; AVX: # %bb.0:
1804 ; AVX-NEXT: vrsqrtss %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x52,0xc0]
1805 ; AVX-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1813 ; X86-SSE: # %bb.0:
1814 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1815 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1816 ; X86-SSE-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1817 ; X86-SSE-NEXT: stmxcsr (%ecx) # encoding: [0x0f,0xae,0x19]
1818 ; X86-SSE-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1819 ; X86-SSE-NEXT: andl $-8065, %edx # encoding: [0x81,0xe2,0x7f,0xe0,0xff,0xff]
1820 ; X86-SSE-NEXT: # imm = 0xE07F
1821 ; X86-SSE-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1822 ; X86-SSE-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1823 ; X86-SSE-NEXT: ldmxcsr (%ecx) # encoding: [0x0f,0xae,0x11]
1824 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
1825 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1828 ; X86-AVX: # %bb.0:
1829 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1830 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1831 ; X86-AVX-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1832 ; X86-AVX-NEXT: vstmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x19]
1833 ; X86-AVX-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1834 ; X86-AVX-NEXT: andl $-8065, %edx # encoding: [0x81,0xe2,0x7f,0xe0,0xff,0xff]
1835 ; X86-AVX-NEXT: # imm = 0xE07F
1836 ; X86-AVX-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1837 ; X86-AVX-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1838 ; X86-AVX-NEXT: vldmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x11]
1839 ; X86-AVX-NEXT: popl %eax # encoding: [0x58]
1840 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1843 ; X64-SSE: # %bb.0:
1844 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1845 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1846 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1847 ; X64-SSE-NEXT: andl $-8065, %ecx # encoding: [0x81,0xe1,0x7f,0xe0,0xff,0xff]
1848 ; X64-SSE-NEXT: # imm = 0xE07F
1849 ; X64-SSE-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1850 ; X64-SSE-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1851 ; X64-SSE-NEXT: ldmxcsr (%rax) # encoding: [0x0f,0xae,0x10]
1852 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1855 ; X64-AVX: # %bb.0:
1856 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1857 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1858 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1859 ; X64-AVX-NEXT: andl $-8065, %ecx # encoding: [0x81,0xe1,0x7f,0xe0,0xff,0xff]
1860 ; X64-AVX-NEXT: # imm = 0xE07F
1861 ; X64-AVX-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1862 ; X64-AVX-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1863 ; X64-AVX-NEXT: vldmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x10]
1864 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1879 ; X86-SSE: # %bb.0:
1880 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1881 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1882 ; X86-SSE-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1883 ; X86-SSE-NEXT: stmxcsr (%ecx) # encoding: [0x0f,0xae,0x19]
1884 ; X86-SSE-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1885 ; X86-SSE-NEXT: andl $-64, %edx # encoding: [0x83,0xe2,0xc0]
1886 ; X86-SSE-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1887 ; X86-SSE-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1888 ; X86-SSE-NEXT: ldmxcsr (%ecx) # encoding: [0x0f,0xae,0x11]
1889 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
1890 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1893 ; X86-AVX: # %bb.0:
1894 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1895 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1896 ; X86-AVX-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1897 ; X86-AVX-NEXT: vstmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x19]
1898 ; X86-AVX-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1899 ; X86-AVX-NEXT: andl $-64, %edx # encoding: [0x83,0xe2,0xc0]
1900 ; X86-AVX-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1901 ; X86-AVX-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1902 ; X86-AVX-NEXT: vldmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x11]
1903 ; X86-AVX-NEXT: popl %eax # encoding: [0x58]
1904 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1907 ; X64-SSE: # %bb.0:
1908 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1909 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1910 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1911 ; X64-SSE-NEXT: andl $-64, %ecx # encoding: [0x83,0xe1,0xc0]
1912 ; X64-SSE-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1913 ; X64-SSE-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1914 ; X64-SSE-NEXT: ldmxcsr (%rax) # encoding: [0x0f,0xae,0x10]
1915 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1918 ; X64-AVX: # %bb.0:
1919 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1920 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1921 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1922 ; X64-AVX-NEXT: andl $-64, %ecx # encoding: [0x83,0xe1,0xc0]
1923 ; X64-AVX-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1924 ; X64-AVX-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1925 ; X64-AVX-NEXT: vldmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x10]
1926 ; X64-AVX-NEXT: retq # encoding: [0xc3]
1940 ; X86-SSE: # %bb.0:
1941 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
1942 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1943 ; X86-SSE-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1944 ; X86-SSE-NEXT: stmxcsr (%ecx) # encoding: [0x0f,0xae,0x19]
1945 ; X86-SSE-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1946 ; X86-SSE-NEXT: andl $-32769, %edx # encoding: [0x81,0xe2,0xff,0x7f,0xff,0xff]
1947 ; X86-SSE-NEXT: # imm = 0xFFFF7FFF
1948 ; X86-SSE-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1949 ; X86-SSE-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1950 ; X86-SSE-NEXT: ldmxcsr (%ecx) # encoding: [0x0f,0xae,0x11]
1951 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
1952 ; X86-SSE-NEXT: retl # encoding: [0xc3]
1955 ; X86-AVX: # %bb.0:
1956 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
1957 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
1958 ; X86-AVX-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
1959 ; X86-AVX-NEXT: vstmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x19]
1960 ; X86-AVX-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
1961 ; X86-AVX-NEXT: andl $-32769, %edx # encoding: [0x81,0xe2,0xff,0x7f,0xff,0xff]
1962 ; X86-AVX-NEXT: # imm = 0xFFFF7FFF
1963 ; X86-AVX-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
1964 ; X86-AVX-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
1965 ; X86-AVX-NEXT: vldmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x11]
1966 ; X86-AVX-NEXT: popl %eax # encoding: [0x58]
1967 ; X86-AVX-NEXT: retl # encoding: [0xc3]
1970 ; X64-SSE: # %bb.0:
1971 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1972 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
1973 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1974 ; X64-SSE-NEXT: andl $-32769, %ecx # encoding: [0x81,0xe1,0xff,0x7f,0xff,0xff]
1975 ; X64-SSE-NEXT: # imm = 0xFFFF7FFF
1976 ; X64-SSE-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1977 ; X64-SSE-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1978 ; X64-SSE-NEXT: ldmxcsr (%rax) # encoding: [0x0f,0xae,0x10]
1979 ; X64-SSE-NEXT: retq # encoding: [0xc3]
1982 ; X64-AVX: # %bb.0:
1983 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
1984 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
1985 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
1986 ; X64-AVX-NEXT: andl $-32769, %ecx # encoding: [0x81,0xe1,0xff,0x7f,0xff,0xff]
1987 ; X64-AVX-NEXT: # imm = 0xFFFF7FFF
1988 ; X64-AVX-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
1989 ; X64-AVX-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
1990 ; X64-AVX-NEXT: vldmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x10]
1991 ; X64-AVX-NEXT: retq # encoding: [0xc3]
2005 ; X86-SSE: # %bb.0:
2006 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2007 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x10]
2008 ; X86-SSE-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2009 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x4c,0x24,0x0c]
2010 ; X86-SSE-NEXT: unpcklps %xmm1, %xmm0 # encoding: [0x0f,0x14,0xc1]
2011 ; X86-SSE-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2012 ; X86-SSE-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2013 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x4c,0x24,0x08]
2014 ; X86-SSE-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2015 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x54,0x24,0x04]
2016 ; X86-SSE-NEXT: unpcklps %xmm2, %xmm1 # encoding: [0x0f,0x14,0xca]
2017 ; X86-SSE-NEXT: # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2018 ; X86-SSE-NEXT: movlhps %xmm1, %xmm0 # encoding: [0x0f,0x16,0xc1]
2019 ; X86-SSE-NEXT: # xmm0 = xmm0[0],xmm1[0]
2020 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2023 ; X86-AVX1: # %bb.0:
2024 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2025 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x10]
2026 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2027 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x0c]
2028 ; X86-AVX1-NEXT: vinsertps $16, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x10]
2029 ; X86-AVX1-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2030 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2031 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x08]
2032 ; X86-AVX1-NEXT: vinsertps $32, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x20]
2033 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
2034 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2035 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x04]
2036 ; X86-AVX1-NEXT: vinsertps $48, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x30]
2037 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,1,2],xmm1[0]
2038 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2041 ; X86-AVX512: # %bb.0:
2042 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2043 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x10]
2044 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2045 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x0c]
2046 ; X86-AVX512-NEXT: vinsertps $16, %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x10]
2047 ; X86-AVX512-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2048 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2049 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x08]
2050 ; X86-AVX512-NEXT: vinsertps $32, %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x20]
2051 ; X86-AVX512-NEXT: # xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
2052 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2053 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x04]
2054 ; X86-AVX512-NEXT: vinsertps $48, %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x30]
2055 ; X86-AVX512-NEXT: # xmm0 = xmm0[0,1,2],xmm1[0]
2056 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2059 ; X64-SSE: # %bb.0:
2060 ; X64-SSE-NEXT: unpcklps %xmm0, %xmm1 # encoding: [0x0f,0x14,0xc8]
2061 ; X64-SSE-NEXT: # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2062 ; X64-SSE-NEXT: unpcklps %xmm2, %xmm3 # encoding: [0x0f,0x14,0xda]
2063 ; X64-SSE-NEXT: # xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2064 ; X64-SSE-NEXT: movlhps %xmm1, %xmm3 # encoding: [0x0f,0x16,0xd9]
2065 ; X64-SSE-NEXT: # xmm3 = xmm3[0],xmm1[0]
2066 ; X64-SSE-NEXT: movaps %xmm3, %xmm0 # encoding: [0x0f,0x28,0xc3]
2067 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2070 ; X64-AVX1: # %bb.0:
2071 ; X64-AVX1-NEXT: vinsertps $16, %xmm2, %xmm3, %xmm2 # encoding: [0xc4,0xe3,0x61,0x21,0xd2,0x10]
2072 ; X64-AVX1-NEXT: # xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2073 ; X64-AVX1-NEXT: vinsertps $32, %xmm1, %xmm2, %xmm1 # encoding: [0xc4,0xe3,0x69,0x21,0xc9,0x20]
2074 ; X64-AVX1-NEXT: # xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2075 ; X64-AVX1-NEXT: vinsertps $48, %xmm0, %xmm1, %xmm0 # encoding: [0xc4,0xe3,0x71,0x21,0xc0,0x30]
2076 ; X64-AVX1-NEXT: # xmm0 = xmm1[0,1,2],xmm0[0]
2077 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2080 ; X64-AVX512: # %bb.0:
2081 ; X64-AVX512-NEXT: vinsertps $16, %xmm2, %xmm3, %xmm2 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x61,0x21,0xd2,0x10]
2082 ; X64-AVX512-NEXT: # xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2083 ; X64-AVX512-NEXT: vinsertps $32, %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x69,0x21,0xc9,0x20]
2084 ; X64-AVX512-NEXT: # xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2085 ; X64-AVX512-NEXT: vinsertps $48, %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x71,0x21,0xc0,0x30]
2086 ; X64-AVX512-NEXT: # xmm0 = xmm1[0,1,2],xmm0[0]
2087 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2088 %res0 = insertelement <4 x float> undef, float %a3, i32 0
2097 ; X86-SSE: # %bb.0:
2098 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2099 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x04]
2100 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2101 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2102 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2105 ; X86-AVX1: # %bb.0:
2106 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2107 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2108 ; X86-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2109 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2110 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2113 ; X86-AVX512: # %bb.0:
2114 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2115 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2116 ; X86-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2117 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2120 ; X64-SSE: # %bb.0:
2121 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2122 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2123 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2126 ; X64-AVX1: # %bb.0:
2127 ; X64-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2128 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2129 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2132 ; X64-AVX512: # %bb.0:
2133 ; X64-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2134 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2135 %res0 = insertelement <4 x float> undef, float %a0, i32 0
2144 ; X86-SSE: # %bb.0:
2145 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
2146 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
2147 ; X86-SSE-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
2148 ; X86-SSE-NEXT: stmxcsr (%ecx) # encoding: [0x0f,0xae,0x19]
2149 ; X86-SSE-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
2150 ; X86-SSE-NEXT: andl $-24577, %edx # encoding: [0x81,0xe2,0xff,0x9f,0xff,0xff]
2151 ; X86-SSE-NEXT: # imm = 0x9FFF
2152 ; X86-SSE-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
2153 ; X86-SSE-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
2154 ; X86-SSE-NEXT: ldmxcsr (%ecx) # encoding: [0x0f,0xae,0x11]
2155 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
2156 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2159 ; X86-AVX: # %bb.0:
2160 ; X86-AVX-NEXT: pushl %eax # encoding: [0x50]
2161 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
2162 ; X86-AVX-NEXT: movl %esp, %ecx # encoding: [0x89,0xe1]
2163 ; X86-AVX-NEXT: vstmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x19]
2164 ; X86-AVX-NEXT: movl (%esp), %edx # encoding: [0x8b,0x14,0x24]
2165 ; X86-AVX-NEXT: andl $-24577, %edx # encoding: [0x81,0xe2,0xff,0x9f,0xff,0xff]
2166 ; X86-AVX-NEXT: # imm = 0x9FFF
2167 ; X86-AVX-NEXT: orl %eax, %edx # encoding: [0x09,0xc2]
2168 ; X86-AVX-NEXT: movl %edx, (%esp) # encoding: [0x89,0x14,0x24]
2169 ; X86-AVX-NEXT: vldmxcsr (%ecx) # encoding: [0xc5,0xf8,0xae,0x11]
2170 ; X86-AVX-NEXT: popl %eax # encoding: [0x58]
2171 ; X86-AVX-NEXT: retl # encoding: [0xc3]
2174 ; X64-SSE: # %bb.0:
2175 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
2176 ; X64-SSE-NEXT: stmxcsr (%rax) # encoding: [0x0f,0xae,0x18]
2177 ; X64-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
2178 ; X64-SSE-NEXT: andl $-24577, %ecx # encoding: [0x81,0xe1,0xff,0x9f,0xff,0xff]
2179 ; X64-SSE-NEXT: # imm = 0x9FFF
2180 ; X64-SSE-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
2181 ; X64-SSE-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
2182 ; X64-SSE-NEXT: ldmxcsr (%rax) # encoding: [0x0f,0xae,0x10]
2183 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2186 ; X64-AVX: # %bb.0:
2187 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
2188 ; X64-AVX-NEXT: vstmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x18]
2189 ; X64-AVX-NEXT: movl -{{[0-9]+}}(%rsp), %ecx # encoding: [0x8b,0x4c,0x24,0xfc]
2190 ; X64-AVX-NEXT: andl $-24577, %ecx # encoding: [0x81,0xe1,0xff,0x9f,0xff,0xff]
2191 ; X64-AVX-NEXT: # imm = 0x9FFF
2192 ; X64-AVX-NEXT: orl %edi, %ecx # encoding: [0x09,0xf9]
2193 ; X64-AVX-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x4c,0x24,0xfc]
2194 ; X64-AVX-NEXT: vldmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x10]
2195 ; X64-AVX-NEXT: retq # encoding: [0xc3]
2209 ; X86-SSE: # %bb.0:
2210 ; X86-SSE-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2211 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x4c,0x24,0x04]
2212 ; X86-SSE-NEXT: xorps %xmm0, %xmm0 # encoding: [0x0f,0x57,0xc0]
2213 ; X86-SSE-NEXT: movss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x10,0xc1]
2214 ; X86-SSE-NEXT: # xmm0 = xmm1[0],xmm0[1,2,3]
2215 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2218 ; X86-AVX1: # %bb.0:
2219 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2220 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2221 ; X86-AVX1-NEXT: vxorps %xmm1, %xmm1, %xmm1 # encoding: [0xc5,0xf0,0x57,0xc9]
2222 ; X86-AVX1-NEXT: vblendps $1, %xmm0, %xmm1, %xmm0 # encoding: [0xc4,0xe3,0x71,0x0c,0xc0,0x01]
2223 ; X86-AVX1-NEXT: # xmm0 = xmm0[0],xmm1[1,2,3]
2224 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2227 ; X86-AVX512: # %bb.0:
2228 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2229 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2230 ; X86-AVX512-NEXT: vxorps %xmm1, %xmm1, %xmm1 # encoding: [0xc5,0xf0,0x57,0xc9]
2231 ; X86-AVX512-NEXT: vblendps $1, %xmm0, %xmm1, %xmm0 # encoding: [0xc4,0xe3,0x71,0x0c,0xc0,0x01]
2232 ; X86-AVX512-NEXT: # xmm0 = xmm0[0],xmm1[1,2,3]
2233 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2236 ; X64-SSE: # %bb.0:
2237 ; X64-SSE-NEXT: xorps %xmm1, %xmm1 # encoding: [0x0f,0x57,0xc9]
2238 ; X64-SSE-NEXT: movss %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x10,0xc8]
2239 ; X64-SSE-NEXT: # xmm1 = xmm0[0],xmm1[1,2,3]
2240 ; X64-SSE-NEXT: movaps %xmm1, %xmm0 # encoding: [0x0f,0x28,0xc1]
2241 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2244 ; X64-AVX: # %bb.0:
2245 ; X64-AVX-NEXT: vxorps %xmm1, %xmm1, %xmm1 # encoding: [0xc5,0xf0,0x57,0xc9]
2246 ; X64-AVX-NEXT: vblendps $1, %xmm0, %xmm1, %xmm0 # encoding: [0xc4,0xe3,0x71,0x0c,0xc0,0x01]
2247 ; X64-AVX-NEXT: # xmm0 = xmm0[0],xmm1[1,2,3]
2248 ; X64-AVX-NEXT: retq # encoding: [0xc3]
2249 %res0 = insertelement <4 x float> undef, float %a0, i32 0
2258 ; X86-SSE: # %bb.0:
2259 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2260 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x04]
2261 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2262 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2263 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2266 ; X86-AVX1: # %bb.0:
2267 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2268 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2269 ; X86-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2270 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2271 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2274 ; X86-AVX512: # %bb.0:
2275 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2276 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x04]
2277 ; X86-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2278 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2281 ; X64-SSE: # %bb.0:
2282 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2283 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2284 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2287 ; X64-AVX1: # %bb.0:
2288 ; X64-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2289 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2290 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2293 ; X64-AVX512: # %bb.0:
2294 ; X64-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2295 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2296 %res0 = insertelement <4 x float> undef, float %a0, i32 0
2305 ; X86-SSE: # %bb.0:
2306 ; X86-SSE-NEXT: leal {{[0-9]+}}(%esp), %eax # encoding: [0x8d,0x44,0x24,0x04]
2307 ; X86-SSE-NEXT: ldmxcsr (%eax) # encoding: [0x0f,0xae,0x10]
2308 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2311 ; X86-AVX: # %bb.0:
2312 ; X86-AVX-NEXT: leal {{[0-9]+}}(%esp), %eax # encoding: [0x8d,0x44,0x24,0x04]
2313 ; X86-AVX-NEXT: vldmxcsr (%eax) # encoding: [0xc5,0xf8,0xae,0x10]
2314 ; X86-AVX-NEXT: retl # encoding: [0xc3]
2317 ; X64-SSE: # %bb.0:
2318 ; X64-SSE-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x7c,0x24,0xfc]
2319 ; X64-SSE-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
2320 ; X64-SSE-NEXT: ldmxcsr (%rax) # encoding: [0x0f,0xae,0x10]
2321 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2324 ; X64-AVX: # %bb.0:
2325 ; X64-AVX-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # encoding: [0x89,0x7c,0x24,0xfc]
2326 ; X64-AVX-NEXT: leaq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8d,0x44,0x24,0xfc]
2327 ; X64-AVX-NEXT: vldmxcsr (%rax) # encoding: [0xc5,0xf8,0xae,0x10]
2328 ; X64-AVX-NEXT: retq # encoding: [0xc3]
2338 ; X86-SSE: # %bb.0:
2339 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2340 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x10]
2341 ; X86-SSE-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2342 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x4c,0x24,0x0c]
2343 ; X86-SSE-NEXT: unpcklps %xmm0, %xmm1 # encoding: [0x0f,0x14,0xc8]
2344 ; X86-SSE-NEXT: # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2345 ; X86-SSE-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2346 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x54,0x24,0x08]
2347 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2348 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x04]
2349 ; X86-SSE-NEXT: unpcklps %xmm2, %xmm0 # encoding: [0x0f,0x14,0xc2]
2350 ; X86-SSE-NEXT: # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2351 ; X86-SSE-NEXT: movlhps %xmm1, %xmm0 # encoding: [0x0f,0x16,0xc1]
2352 ; X86-SSE-NEXT: # xmm0 = xmm0[0],xmm1[0]
2353 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2356 ; X86-AVX1: # %bb.0:
2357 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2358 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x10]
2359 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2360 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x0c]
2361 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2362 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x54,0x24,0x08]
2363 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero
2364 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x5c,0x24,0x04]
2365 ; X86-AVX1-NEXT: vinsertps $16, %xmm2, %xmm3, %xmm2 # encoding: [0xc4,0xe3,0x61,0x21,0xd2,0x10]
2366 ; X86-AVX1-NEXT: # xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2367 ; X86-AVX1-NEXT: vinsertps $32, %xmm1, %xmm2, %xmm1 # encoding: [0xc4,0xe3,0x69,0x21,0xc9,0x20]
2368 ; X86-AVX1-NEXT: # xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2369 ; X86-AVX1-NEXT: vinsertps $48, %xmm0, %xmm1, %xmm0 # encoding: [0xc4,0xe3,0x71,0x21,0xc0,0x30]
2370 ; X86-AVX1-NEXT: # xmm0 = xmm1[0,1,2],xmm0[0]
2371 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2374 ; X86-AVX512: # %bb.0:
2375 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2376 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x10]
2377 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2378 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x4c,0x24,0x0c]
2379 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2380 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x54,0x24,0x08]
2381 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero
2382 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x5c,0x24,0x04]
2383 ; X86-AVX512-NEXT: vinsertps $16, %xmm2, %xmm3, %xmm2 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x61,0x21,0xd2,0x10]
2384 ; X86-AVX512-NEXT: # xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2385 ; X86-AVX512-NEXT: vinsertps $32, %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x69,0x21,0xc9,0x20]
2386 ; X86-AVX512-NEXT: # xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2387 ; X86-AVX512-NEXT: vinsertps $48, %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x71,0x21,0xc0,0x30]
2388 ; X86-AVX512-NEXT: # xmm0 = xmm1[0,1,2],xmm0[0]
2389 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2392 ; X64-SSE: # %bb.0:
2393 ; X64-SSE-NEXT: unpcklps %xmm3, %xmm2 # encoding: [0x0f,0x14,0xd3]
2394 ; X64-SSE-NEXT: # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
2395 ; X64-SSE-NEXT: unpcklps %xmm1, %xmm0 # encoding: [0x0f,0x14,0xc1]
2396 ; X64-SSE-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2397 ; X64-SSE-NEXT: movlhps %xmm2, %xmm0 # encoding: [0x0f,0x16,0xc2]
2398 ; X64-SSE-NEXT: # xmm0 = xmm0[0],xmm2[0]
2399 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2402 ; X64-AVX1: # %bb.0:
2403 ; X64-AVX1-NEXT: vinsertps $16, %xmm1, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x10]
2404 ; X64-AVX1-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2405 ; X64-AVX1-NEXT: vinsertps $32, %xmm2, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc2,0x20]
2406 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,1],xmm2[0],xmm0[3]
2407 ; X64-AVX1-NEXT: vinsertps $48, %xmm3, %xmm0, %xmm0 # encoding: [0xc4,0xe3,0x79,0x21,0xc3,0x30]
2408 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,1,2],xmm3[0]
2409 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2412 ; X64-AVX512: # %bb.0:
2413 ; X64-AVX512-NEXT: vinsertps $16, %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc1,0x10]
2414 ; X64-AVX512-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2415 ; X64-AVX512-NEXT: vinsertps $32, %xmm2, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc2,0x20]
2416 ; X64-AVX512-NEXT: # xmm0 = xmm0[0,1],xmm2[0],xmm0[3]
2417 ; X64-AVX512-NEXT: vinsertps $48, %xmm3, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc3,0x30]
2418 ; X64-AVX512-NEXT: # xmm0 = xmm0[0,1,2],xmm3[0]
2419 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2420 %res0 = insertelement <4 x float> undef, float %a0, i32 0
2429 ; SSE: # %bb.0:
2430 ; SSE-NEXT: xorps %xmm0, %xmm0 # encoding: [0x0f,0x57,0xc0]
2431 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2434 ; AVX1: # %bb.0:
2435 ; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x57,0xc0]
2436 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2439 ; AVX512: # %bb.0:
2440 ; AVX512-NEXT: vxorps %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x57,0xc0]
2441 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2447 ; CHECK: # %bb.0:
2448 ; CHECK-NEXT: sfence # encoding: [0x0f,0xae,0xf8]
2449 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2457 ; SSE: # %bb.0:
2458 ; SSE-NEXT: shufps $0, %xmm1, %xmm0 # encoding: [0x0f,0xc6,0xc1,0x00]
2459 ; SSE-NEXT: # xmm0 = xmm0[0,0],xmm1[0,0]
2460 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2463 ; AVX1: # %bb.0:
2464 ; AVX1-NEXT: vshufps $0, %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc1,0x00]
2465 ; AVX1-NEXT: # xmm0 = xmm0[0,0],xmm1[0,0]
2466 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2469 ; AVX512: # %bb.0:
2470 ; AVX512-NEXT: vshufps $0, %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0xc6,0xc1,0x00]
2471 ; AVX512-NEXT: # xmm0 = xmm0[0,0],xmm1[0,0]
2472 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2473 %res = shufflevector <4 x float> %a0, <4 x float> %a1, <4 x i32> <i32 0, i32 0, i32 4, i32 4>
2479 ; SSE: # %bb.0:
2480 ; SSE-NEXT: sqrtps %xmm0, %xmm0 # encoding: [0x0f,0x51,0xc0]
2481 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2484 ; AVX1: # %bb.0:
2485 ; AVX1-NEXT: vsqrtps %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x51,0xc0]
2486 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2489 ; AVX512: # %bb.0:
2490 ; AVX512-NEXT: vsqrtps %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x51,0xc0]
2491 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2499 ; SSE: # %bb.0:
2500 ; SSE-NEXT: sqrtss %xmm0, %xmm0 # encoding: [0xf3,0x0f,0x51,0xc0]
2501 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2504 ; AVX1: # %bb.0:
2505 ; AVX1-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x51,0xc0]
2506 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2509 ; AVX512: # %bb.0:
2510 ; AVX512-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x51,0xc0]
2511 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
2512 %ext = extractelement <4 x float> %a0, i32 0
2514 %ins = insertelement <4 x float> %a0, float %sqrt, i32 0
2521 ; X86-SSE: # %bb.0:
2522 ; X86-SSE-NEXT: pushl %eax # encoding: [0x50]
2524 ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2525 ; X86-SSE-NEXT: # encoding: [0xf3,0x0f,0x10,0x44,0x24,0x08]
2526 ; X86-SSE-NEXT: sqrtss %xmm0, %xmm0 # encoding: [0xf3,0x0f,0x51,0xc0]
2527 ; X86-SSE-NEXT: movss %xmm0, (%esp) # encoding: [0xf3,0x0f,0x11,0x04,0x24]
2528 ; X86-SSE-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
2529 ; X86-SSE-NEXT: popl %eax # encoding: [0x58]
2531 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2534 ; X86-AVX1: # %bb.0:
2535 ; X86-AVX1-NEXT: pushl %eax # encoding: [0x50]
2537 ; X86-AVX1-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2538 ; X86-AVX1-NEXT: # encoding: [0xc5,0xfa,0x10,0x44,0x24,0x08]
2539 ; X86-AVX1-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x51,0xc0]
2540 ; X86-AVX1-NEXT: vmovss %xmm0, (%esp) # encoding: [0xc5,0xfa,0x11,0x04,0x24]
2541 ; X86-AVX1-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
2542 ; X86-AVX1-NEXT: popl %eax # encoding: [0x58]
2544 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2547 ; X86-AVX512: # %bb.0:
2548 ; X86-AVX512-NEXT: pushl %eax # encoding: [0x50]
2550 ; X86-AVX512-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2551 ; X86-AVX512-NEXT: # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x44,0x24,0x08]
2552 ; X86-AVX512-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x51,0xc0]
2553 ; X86-AVX512-NEXT: vmovss %xmm0, (%esp) # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x04,0x24]
2554 ; X86-AVX512-NEXT: flds (%esp) # encoding: [0xd9,0x04,0x24]
2555 ; X86-AVX512-NEXT: popl %eax # encoding: [0x58]
2557 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2560 ; X64-SSE: # %bb.0:
2561 ; X64-SSE-NEXT: sqrtss %xmm0, %xmm0 # encoding: [0xf3,0x0f,0x51,0xc0]
2562 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2565 ; X64-AVX1: # %bb.0:
2566 ; X64-AVX1-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x51,0xc0]
2567 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2570 ; X64-AVX512: # %bb.0:
2571 ; X64-AVX512-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x51,0xc0]
2572 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2579 ; X86-SSE: # %bb.0:
2580 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2581 ; X86-SSE-NEXT: movaps %xmm0, (%eax) # encoding: [0x0f,0x29,0x00]
2582 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2585 ; X86-AVX1: # %bb.0:
2586 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2587 ; X86-AVX1-NEXT: vmovaps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x29,0x00]
2588 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2591 ; X86-AVX512: # %bb.0:
2592 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2593 ; X86-AVX512-NEXT: vmovaps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x00]
2594 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2597 ; X64-SSE: # %bb.0:
2598 ; X64-SSE-NEXT: movaps %xmm0, (%rdi) # encoding: [0x0f,0x29,0x07]
2599 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2602 ; X64-AVX1: # %bb.0:
2603 ; X64-AVX1-NEXT: vmovaps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x29,0x07]
2604 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2607 ; X64-AVX512: # %bb.0:
2608 ; X64-AVX512-NEXT: vmovaps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
2609 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2617 ; X86-SSE: # %bb.0:
2618 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2619 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2620 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2621 ; X86-SSE-NEXT: movaps %xmm0, (%eax) # encoding: [0x0f,0x29,0x00]
2622 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2625 ; X86-AVX1: # %bb.0:
2626 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2627 ; X86-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2628 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2629 ; X86-AVX1-NEXT: vmovaps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x29,0x00]
2630 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2633 ; X86-AVX512: # %bb.0:
2634 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2635 ; X86-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2636 ; X86-AVX512-NEXT: vmovaps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x00]
2637 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2640 ; X64-SSE: # %bb.0:
2641 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2642 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2643 ; X64-SSE-NEXT: movaps %xmm0, (%rdi) # encoding: [0x0f,0x29,0x07]
2644 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2647 ; X64-AVX1: # %bb.0:
2648 ; X64-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2649 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2650 ; X64-AVX1-NEXT: vmovaps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x29,0x07]
2651 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2654 ; X64-AVX512: # %bb.0:
2655 ; X64-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2656 ; X64-AVX512-NEXT: vmovaps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
2657 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2666 ; X86-SSE: # %bb.0:
2667 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2668 ; X86-SSE-NEXT: movss %xmm0, (%eax) # encoding: [0xf3,0x0f,0x11,0x00]
2669 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2672 ; X86-AVX1: # %bb.0:
2673 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2674 ; X86-AVX1-NEXT: vmovss %xmm0, (%eax) # encoding: [0xc5,0xfa,0x11,0x00]
2675 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2678 ; X86-AVX512: # %bb.0:
2679 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2680 ; X86-AVX512-NEXT: vmovss %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x00]
2681 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2684 ; X64-SSE: # %bb.0:
2685 ; X64-SSE-NEXT: movss %xmm0, (%rdi) # encoding: [0xf3,0x0f,0x11,0x07]
2686 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2689 ; X64-AVX1: # %bb.0:
2690 ; X64-AVX1-NEXT: vmovss %xmm0, (%rdi) # encoding: [0xc5,0xfa,0x11,0x07]
2691 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2694 ; X64-AVX512: # %bb.0:
2695 ; X64-AVX512-NEXT: vmovss %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x07]
2696 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2697 %ext = extractelement <4 x float> %a1, i32 0
2704 ; X86-SSE: # %bb.0:
2705 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2706 ; X86-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2707 ; X86-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2708 ; X86-SSE-NEXT: movaps %xmm0, (%eax) # encoding: [0x0f,0x29,0x00]
2709 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2712 ; X86-AVX1: # %bb.0:
2713 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2714 ; X86-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2715 ; X86-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2716 ; X86-AVX1-NEXT: vmovaps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x29,0x00]
2717 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2720 ; X86-AVX512: # %bb.0:
2721 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2722 ; X86-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2723 ; X86-AVX512-NEXT: vmovaps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x00]
2724 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2727 ; X64-SSE: # %bb.0:
2728 ; X64-SSE-NEXT: shufps $0, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x00]
2729 ; X64-SSE-NEXT: # xmm0 = xmm0[0,0,0,0]
2730 ; X64-SSE-NEXT: movaps %xmm0, (%rdi) # encoding: [0x0f,0x29,0x07]
2731 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2734 ; X64-AVX1: # %bb.0:
2735 ; X64-AVX1-NEXT: vshufps $0, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x00]
2736 ; X64-AVX1-NEXT: # xmm0 = xmm0[0,0,0,0]
2737 ; X64-AVX1-NEXT: vmovaps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x29,0x07]
2738 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2741 ; X64-AVX512: # %bb.0:
2742 ; X64-AVX512-NEXT: vbroadcastss %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0xc0]
2743 ; X64-AVX512-NEXT: vmovaps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
2744 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2753 ; X86-SSE1: # %bb.0:
2754 ; X86-SSE1-NEXT: pushl %ebp # encoding: [0x55]
2755 ; X86-SSE1-NEXT: movl %esp, %ebp # encoding: [0x89,0xe5]
2756 ; X86-SSE1-NEXT: andl $-16, %esp # encoding: [0x83,0xe4,0xf0]
2757 ; X86-SSE1-NEXT: subl $32, %esp # encoding: [0x83,0xec,0x20]
2758 ; X86-SSE1-NEXT: movl 8(%ebp), %eax # encoding: [0x8b,0x45,0x08]
2759 ; X86-SSE1-NEXT: movaps %xmm0, (%esp) # encoding: [0x0f,0x29,0x04,0x24]
2760 ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
2761 ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
2762 ; X86-SSE1-NEXT: movl %edx, 4(%eax) # encoding: [0x89,0x50,0x04]
2763 ; X86-SSE1-NEXT: movl %ecx, (%eax) # encoding: [0x89,0x08]
2764 ; X86-SSE1-NEXT: movl %ebp, %esp # encoding: [0x89,0xec]
2765 ; X86-SSE1-NEXT: popl %ebp # encoding: [0x5d]
2766 ; X86-SSE1-NEXT: retl # encoding: [0xc3]
2769 ; X86-SSE2: # %bb.0:
2770 ; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2771 ; X86-SSE2-NEXT: movhps %xmm0, (%eax) # encoding: [0x0f,0x17,0x00]
2772 ; X86-SSE2-NEXT: retl # encoding: [0xc3]
2775 ; X86-AVX1: # %bb.0:
2776 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2777 ; X86-AVX1-NEXT: vmovhps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x17,0x00]
2778 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2781 ; X86-AVX512: # %bb.0:
2782 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2783 ; X86-AVX512-NEXT: vmovhps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x17,0x00]
2784 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2787 ; X64-SSE1: # %bb.0:
2788 ; X64-SSE1-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp) # encoding: [0x0f,0x29,0x44,0x24,0xe8]
2789 ; X64-SSE1-NEXT: movq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8b,0x44,0x24,0xf0]
2790 ; X64-SSE1-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2791 ; X64-SSE1-NEXT: retq # encoding: [0xc3]
2794 ; X64-SSE2: # %bb.0:
2795 ; X64-SSE2-NEXT: punpckhqdq %xmm0, %xmm0 # encoding: [0x66,0x0f,0x6d,0xc0]
2797 ; X64-SSE2-NEXT: movq %xmm0, %rax # encoding: [0x66,0x48,0x0f,0x7e,0xc0]
2798 ; X64-SSE2-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2799 ; X64-SSE2-NEXT: retq # encoding: [0xc3]
2802 ; X64-AVX1: # %bb.0:
2803 ; X64-AVX1-NEXT: vpextrq $1, %xmm0, %rax # encoding: [0xc4,0xe3,0xf9,0x16,0xc0,0x01]
2804 ; X64-AVX1-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2805 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2808 ; X64-AVX512: # %bb.0:
2809 ; X64-AVX512-NEXT: vpextrq $1, %xmm0, %rax # EVEX TO VEX Compression encoding: [0xc4,0xe3,0xf9,0x16,0xc0,0x01]
2810 ; X64-AVX512-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2811 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2821 ; X86-SSE: # %bb.0:
2822 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2823 ; X86-SSE-NEXT: movhps %xmm0, (%eax) # encoding: [0x0f,0x17,0x00]
2824 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2827 ; X86-AVX1: # %bb.0:
2828 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2829 ; X86-AVX1-NEXT: vmovhps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x17,0x00]
2830 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2833 ; X86-AVX512: # %bb.0:
2834 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2835 ; X86-AVX512-NEXT: vmovhps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x17,0x00]
2836 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2839 ; X64-SSE: # %bb.0:
2840 ; X64-SSE-NEXT: movhps %xmm0, (%rdi) # encoding: [0x0f,0x17,0x07]
2841 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2844 ; X64-AVX1: # %bb.0:
2845 ; X64-AVX1-NEXT: vmovhps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x17,0x07]
2846 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2849 ; X64-AVX512: # %bb.0:
2850 ; X64-AVX512-NEXT: vmovhps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x17,0x07]
2851 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2860 ; X86-SSE1: # %bb.0:
2861 ; X86-SSE1-NEXT: pushl %ebp # encoding: [0x55]
2862 ; X86-SSE1-NEXT: movl %esp, %ebp # encoding: [0x89,0xe5]
2863 ; X86-SSE1-NEXT: andl $-16, %esp # encoding: [0x83,0xe4,0xf0]
2864 ; X86-SSE1-NEXT: subl $32, %esp # encoding: [0x83,0xec,0x20]
2865 ; X86-SSE1-NEXT: movl 8(%ebp), %eax # encoding: [0x8b,0x45,0x08]
2866 ; X86-SSE1-NEXT: movaps %xmm0, (%esp) # encoding: [0x0f,0x29,0x04,0x24]
2867 ; X86-SSE1-NEXT: movl (%esp), %ecx # encoding: [0x8b,0x0c,0x24]
2868 ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
2869 ; X86-SSE1-NEXT: movl %edx, 4(%eax) # encoding: [0x89,0x50,0x04]
2870 ; X86-SSE1-NEXT: movl %ecx, (%eax) # encoding: [0x89,0x08]
2871 ; X86-SSE1-NEXT: movl %ebp, %esp # encoding: [0x89,0xec]
2872 ; X86-SSE1-NEXT: popl %ebp # encoding: [0x5d]
2873 ; X86-SSE1-NEXT: retl # encoding: [0xc3]
2876 ; X86-SSE2: # %bb.0:
2877 ; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2878 ; X86-SSE2-NEXT: movlps %xmm0, (%eax) # encoding: [0x0f,0x13,0x00]
2879 ; X86-SSE2-NEXT: retl # encoding: [0xc3]
2882 ; X86-AVX1: # %bb.0:
2883 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2884 ; X86-AVX1-NEXT: vmovlps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x13,0x00]
2885 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2888 ; X86-AVX512: # %bb.0:
2889 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2890 ; X86-AVX512-NEXT: vmovlps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x13,0x00]
2891 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2894 ; X64-SSE1: # %bb.0:
2895 ; X64-SSE1-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp) # encoding: [0x0f,0x29,0x44,0x24,0xe8]
2896 ; X64-SSE1-NEXT: movq -{{[0-9]+}}(%rsp), %rax # encoding: [0x48,0x8b,0x44,0x24,0xe8]
2897 ; X64-SSE1-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2898 ; X64-SSE1-NEXT: retq # encoding: [0xc3]
2901 ; X64-SSE2: # %bb.0:
2902 ; X64-SSE2-NEXT: movq %xmm0, %rax # encoding: [0x66,0x48,0x0f,0x7e,0xc0]
2903 ; X64-SSE2-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2904 ; X64-SSE2-NEXT: retq # encoding: [0xc3]
2907 ; X64-AVX1: # %bb.0:
2908 ; X64-AVX1-NEXT: vmovq %xmm0, %rax # encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
2909 ; X64-AVX1-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2910 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2913 ; X64-AVX512: # %bb.0:
2914 ; X64-AVX512-NEXT: vmovq %xmm0, %rax # EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
2915 ; X64-AVX512-NEXT: movq %rax, (%rdi) # encoding: [0x48,0x89,0x07]
2916 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2919 %ext = extractelement <2 x i64> %bc, i32 0
2927 ; X86-SSE: # %bb.0:
2928 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2929 ; X86-SSE-NEXT: movlps %xmm0, (%eax) # encoding: [0x0f,0x13,0x00]
2930 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2933 ; X86-AVX1: # %bb.0:
2934 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2935 ; X86-AVX1-NEXT: vmovlps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x13,0x00]
2936 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2939 ; X86-AVX512: # %bb.0:
2940 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2941 ; X86-AVX512-NEXT: vmovlps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x13,0x00]
2942 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2945 ; X64-SSE: # %bb.0:
2946 ; X64-SSE-NEXT: movlps %xmm0, (%rdi) # encoding: [0x0f,0x13,0x07]
2947 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2950 ; X64-AVX1: # %bb.0:
2951 ; X64-AVX1-NEXT: vmovlps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x13,0x07]
2952 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
2955 ; X64-AVX512: # %bb.0:
2956 ; X64-AVX512-NEXT: vmovlps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x13,0x07]
2957 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
2959 %ext = shufflevector <4 x float> %a1, <4 x float> undef, <2 x i32> <i32 0, i32 1>
2966 ; X86-SSE: # %bb.0:
2967 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2968 ; X86-SSE-NEXT: shufps $27, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x1b]
2969 ; X86-SSE-NEXT: # xmm0 = xmm0[3,2,1,0]
2970 ; X86-SSE-NEXT: movaps %xmm0, (%eax) # encoding: [0x0f,0x29,0x00]
2971 ; X86-SSE-NEXT: retl # encoding: [0xc3]
2974 ; X86-AVX1: # %bb.0:
2975 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2976 ; X86-AVX1-NEXT: vshufps $27, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x1b]
2977 ; X86-AVX1-NEXT: # xmm0 = xmm0[3,2,1,0]
2978 ; X86-AVX1-NEXT: vmovaps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x29,0x00]
2979 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
2982 ; X86-AVX512: # %bb.0:
2983 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
2984 ; X86-AVX512-NEXT: vshufps $27, %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0xc6,0xc0,0x1b]
2985 ; X86-AVX512-NEXT: # xmm0 = xmm0[3,2,1,0]
2986 ; X86-AVX512-NEXT: vmovaps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x00]
2987 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
2990 ; X64-SSE: # %bb.0:
2991 ; X64-SSE-NEXT: shufps $27, %xmm0, %xmm0 # encoding: [0x0f,0xc6,0xc0,0x1b]
2992 ; X64-SSE-NEXT: # xmm0 = xmm0[3,2,1,0]
2993 ; X64-SSE-NEXT: movaps %xmm0, (%rdi) # encoding: [0x0f,0x29,0x07]
2994 ; X64-SSE-NEXT: retq # encoding: [0xc3]
2997 ; X64-AVX1: # %bb.0:
2998 ; X64-AVX1-NEXT: vshufps $27, %xmm0, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0xc6,0xc0,0x1b]
2999 ; X64-AVX1-NEXT: # xmm0 = xmm0[3,2,1,0]
3000 ; X64-AVX1-NEXT: vmovaps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x29,0x07]
3001 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
3004 ; X64-AVX512: # %bb.0:
3005 ; X64-AVX512-NEXT: vshufps $27, %xmm0, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0xc6,0xc0,0x1b]
3006 ; X64-AVX512-NEXT: # xmm0 = xmm0[3,2,1,0]
3007 ; X64-AVX512-NEXT: vmovaps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
3008 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
3010 %shuf = shufflevector <4 x float> %a1, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
3017 ; X86-SSE: # %bb.0:
3018 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3019 ; X86-SSE-NEXT: movups %xmm0, (%eax) # encoding: [0x0f,0x11,0x00]
3020 ; X86-SSE-NEXT: retl # encoding: [0xc3]
3023 ; X86-AVX1: # %bb.0:
3024 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3025 ; X86-AVX1-NEXT: vmovups %xmm0, (%eax) # encoding: [0xc5,0xf8,0x11,0x00]
3026 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
3029 ; X86-AVX512: # %bb.0:
3030 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3031 ; X86-AVX512-NEXT: vmovups %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x00]
3032 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
3035 ; X64-SSE: # %bb.0:
3036 ; X64-SSE-NEXT: movups %xmm0, (%rdi) # encoding: [0x0f,0x11,0x07]
3037 ; X64-SSE-NEXT: retq # encoding: [0xc3]
3040 ; X64-AVX1: # %bb.0:
3041 ; X64-AVX1-NEXT: vmovups %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x11,0x07]
3042 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
3045 ; X64-AVX512: # %bb.0:
3046 ; X64-AVX512-NEXT: vmovups %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x07]
3047 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
3055 ; X86-SSE: # %bb.0:
3056 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3057 ; X86-SSE-NEXT: movntps %xmm0, (%eax) # encoding: [0x0f,0x2b,0x00]
3058 ; X86-SSE-NEXT: retl # encoding: [0xc3]
3061 ; X86-AVX1: # %bb.0:
3062 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3063 ; X86-AVX1-NEXT: vmovntps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x2b,0x00]
3064 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
3067 ; X86-AVX512: # %bb.0:
3068 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
3069 ; X86-AVX512-NEXT: vmovntps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2b,0x00]
3070 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
3073 ; X64-SSE: # %bb.0:
3074 ; X64-SSE-NEXT: movntps %xmm0, (%rdi) # encoding: [0x0f,0x2b,0x07]
3075 ; X64-SSE-NEXT: retq # encoding: [0xc3]
3078 ; X64-AVX1: # %bb.0:
3079 ; X64-AVX1-NEXT: vmovntps %xmm0, (%rdi) # encoding: [0xc5,0xf8,0x2b,0x07]
3080 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
3083 ; X64-AVX512: # %bb.0:
3084 ; X64-AVX512-NEXT: vmovntps %xmm0, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2b,0x07]
3085 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
3087 store <4 x float> %a1, ptr %arg0, align 16, !nontemporal !0
3093 ; SSE: # %bb.0:
3094 ; SSE-NEXT: subps %xmm1, %xmm0 # encoding: [0x0f,0x5c,0xc1]
3095 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3098 ; AVX1: # %bb.0:
3099 ; AVX1-NEXT: vsubps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x5c,0xc1]
3100 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3103 ; AVX512: # %bb.0:
3104 ; AVX512-NEXT: vsubps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5c,0xc1]
3105 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3112 ; SSE: # %bb.0:
3113 ; SSE-NEXT: subss %xmm1, %xmm0 # encoding: [0xf3,0x0f,0x5c,0xc1]
3114 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3117 ; AVX1: # %bb.0:
3118 ; AVX1-NEXT: vsubss %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xfa,0x5c,0xc1]
3119 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3122 ; AVX512: # %bb.0:
3123 ; AVX512-NEXT: vsubss %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5c,0xc1]
3124 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3125 %ext0 = extractelement <4 x float> %a0, i32 0
3126 %ext1 = extractelement <4 x float> %a1, i32 0
3128 %res = insertelement <4 x float> %a0, float %fsub, i32 0
3134 ; X86-SSE: # %bb.0:
3135 ; X86-SSE-NEXT: pushl %esi # encoding: [0x56]
3136 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x14]
3137 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
3138 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
3139 ; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
3140 ; X86-SSE-NEXT: movaps (%esi), %xmm1 # encoding: [0x0f,0x28,0x0e]
3141 ; X86-SSE-NEXT: movaps (%edx), %xmm2 # encoding: [0x0f,0x28,0x12]
3142 ; X86-SSE-NEXT: movaps (%ecx), %xmm0 # encoding: [0x0f,0x28,0x01]
3143 ; X86-SSE-NEXT: movaps (%eax), %xmm3 # encoding: [0x0f,0x28,0x18]
3144 ; X86-SSE-NEXT: movaps %xmm1, %xmm4 # encoding: [0x0f,0x28,0xe1]
3145 ; X86-SSE-NEXT: unpcklps %xmm2, %xmm4 # encoding: [0x0f,0x14,0xe2]
3146 ; X86-SSE-NEXT: # xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
3147 ; X86-SSE-NEXT: movaps %xmm0, %xmm5 # encoding: [0x0f,0x28,0xe8]
3148 ; X86-SSE-NEXT: unpcklps %xmm3, %xmm5 # encoding: [0x0f,0x14,0xeb]
3149 ; X86-SSE-NEXT: # xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
3150 ; X86-SSE-NEXT: unpckhps %xmm2, %xmm1 # encoding: [0x0f,0x15,0xca]
3152 ; X86-SSE-NEXT: unpckhps %xmm3, %xmm0 # encoding: [0x0f,0x15,0xc3]
3154 ; X86-SSE-NEXT: movaps %xmm4, %xmm2 # encoding: [0x0f,0x28,0xd4]
3155 ; X86-SSE-NEXT: movlhps %xmm5, %xmm2 # encoding: [0x0f,0x16,0xd5]
3156 ; X86-SSE-NEXT: # xmm2 = xmm2[0],xmm5[0]
3157 ; X86-SSE-NEXT: movhlps %xmm4, %xmm5 # encoding: [0x0f,0x12,0xec]
3159 ; X86-SSE-NEXT: movaps %xmm1, %xmm3 # encoding: [0x0f,0x28,0xd9]
3160 ; X86-SSE-NEXT: movlhps %xmm0, %xmm3 # encoding: [0x0f,0x16,0xd8]
3161 ; X86-SSE-NEXT: # xmm3 = xmm3[0],xmm0[0]
3162 ; X86-SSE-NEXT: movhlps %xmm1, %xmm0 # encoding: [0x0f,0x12,0xc1]
3164 ; X86-SSE-NEXT: movaps %xmm2, (%esi) # encoding: [0x0f,0x29,0x16]
3165 ; X86-SSE-NEXT: movaps %xmm5, (%edx) # encoding: [0x0f,0x29,0x2a]
3166 ; X86-SSE-NEXT: movaps %xmm3, (%ecx) # encoding: [0x0f,0x29,0x19]
3167 ; X86-SSE-NEXT: movaps %xmm0, (%eax) # encoding: [0x0f,0x29,0x00]
3168 ; X86-SSE-NEXT: popl %esi # encoding: [0x5e]
3169 ; X86-SSE-NEXT: retl # encoding: [0xc3]
3172 ; X86-AVX1: # %bb.0:
3173 ; X86-AVX1-NEXT: pushl %esi # encoding: [0x56]
3174 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x14]
3175 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
3176 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
3177 ; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
3178 ; X86-AVX1-NEXT: vmovaps (%esi), %xmm0 # encoding: [0xc5,0xf8,0x28,0x06]
3179 ; X86-AVX1-NEXT: vmovaps (%edx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x0a]
3180 ; X86-AVX1-NEXT: vmovaps (%ecx), %xmm2 # encoding: [0xc5,0xf8,0x28,0x11]
3181 ; X86-AVX1-NEXT: vmovaps (%eax), %xmm3 # encoding: [0xc5,0xf8,0x28,0x18]
3182 ; X86-AVX1-NEXT: vunpcklps %xmm1, %xmm0, %xmm4 # encoding: [0xc5,0xf8,0x14,0xe1]
3183 ; X86-AVX1-NEXT: # xmm4 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3184 ; X86-AVX1-NEXT: vunpcklps %xmm3, %xmm2, %xmm5 # encoding: [0xc5,0xe8,0x14,0xeb]
3185 ; X86-AVX1-NEXT: # xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
3186 ; X86-AVX1-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x15,0xc1]
3188 ; X86-AVX1-NEXT: vunpckhps %xmm3, %xmm2, %xmm1 # encoding: [0xc5,0xe8,0x15,0xcb]
3190 ; X86-AVX1-NEXT: vmovlhps %xmm5, %xmm4, %xmm2 # encoding: [0xc5,0xd8,0x16,0xd5]
3191 ; X86-AVX1-NEXT: # xmm2 = xmm4[0],xmm5[0]
3192 ; X86-AVX1-NEXT: vunpckhpd %xmm5, %xmm4, %xmm3 # encoding: [0xc5,0xd9,0x15,0xdd]
3194 ; X86-AVX1-NEXT: vmovlhps %xmm1, %xmm0, %xmm4 # encoding: [0xc5,0xf8,0x16,0xe1]
3195 ; X86-AVX1-NEXT: # xmm4 = xmm0[0],xmm1[0]
3196 ; X86-AVX1-NEXT: vunpckhpd %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf9,0x15,0xc1]
3198 ; X86-AVX1-NEXT: vmovaps %xmm2, (%esi) # encoding: [0xc5,0xf8,0x29,0x16]
3199 ; X86-AVX1-NEXT: vmovaps %xmm3, (%edx) # encoding: [0xc5,0xf8,0x29,0x1a]
3200 ; X86-AVX1-NEXT: vmovaps %xmm4, (%ecx) # encoding: [0xc5,0xf8,0x29,0x21]
3201 ; X86-AVX1-NEXT: vmovaps %xmm0, (%eax) # encoding: [0xc5,0xf8,0x29,0x00]
3202 ; X86-AVX1-NEXT: popl %esi # encoding: [0x5e]
3203 ; X86-AVX1-NEXT: retl # encoding: [0xc3]
3206 ; X86-AVX512: # %bb.0:
3207 ; X86-AVX512-NEXT: pushl %esi # encoding: [0x56]
3208 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x14]
3209 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
3210 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
3211 ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
3212 ; X86-AVX512-NEXT: vmovaps (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x06]
3213 ; X86-AVX512-NEXT: vmovaps (%edx), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x0a]
3214 ; X86-AVX512-NEXT: vmovaps (%ecx), %xmm2 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x11]
3215 ; X86-AVX512-NEXT: vmovaps (%eax), %xmm3 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x18]
3216 ; X86-AVX512-NEXT: vunpcklps %xmm1, %xmm0, %xmm4 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x14,0xe1]
3217 ; X86-AVX512-NEXT: # xmm4 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3218 ; X86-AVX512-NEXT: vunpcklps %xmm3, %xmm2, %xmm5 # EVEX TO VEX Compression encoding: [0xc5,0xe8,0x14,0xeb]
3219 ; X86-AVX512-NEXT: # xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
3220 ; X86-AVX512-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x15,0xc1]
3222 ; X86-AVX512-NEXT: vunpckhps %xmm3, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xe8,0x15,0xcb]
3224 ; X86-AVX512-NEXT: vmovlhps %xmm5, %xmm4, %xmm2 # EVEX TO VEX Compression encoding: [0xc5,0xd8,0x16,0xd5]
3225 ; X86-AVX512-NEXT: # xmm2 = xmm4[0],xmm5[0]
3226 ; X86-AVX512-NEXT: vunpckhpd %xmm5, %xmm4, %xmm3 # EVEX TO VEX Compression encoding: [0xc5,0xd9,0x15,0xdd]
3228 ; X86-AVX512-NEXT: vmovlhps %xmm1, %xmm0, %xmm4 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x16,0xe1]
3229 ; X86-AVX512-NEXT: # xmm4 = xmm0[0],xmm1[0]
3230 ; X86-AVX512-NEXT: vunpckhpd %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x15,0xc1]
3232 ; X86-AVX512-NEXT: vmovaps %xmm2, (%esi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x16]
3233 ; X86-AVX512-NEXT: vmovaps %xmm3, (%edx) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x1a]
3234 ; X86-AVX512-NEXT: vmovaps %xmm4, (%ecx) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x21]
3235 ; X86-AVX512-NEXT: vmovaps %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x00]
3236 ; X86-AVX512-NEXT: popl %esi # encoding: [0x5e]
3237 ; X86-AVX512-NEXT: retl # encoding: [0xc3]
3240 ; X64-SSE: # %bb.0:
3241 ; X64-SSE-NEXT: movaps (%rdi), %xmm0 # encoding: [0x0f,0x28,0x07]
3242 ; X64-SSE-NEXT: movaps (%rsi), %xmm1 # encoding: [0x0f,0x28,0x0e]
3243 ; X64-SSE-NEXT: movaps (%rdx), %xmm2 # encoding: [0x0f,0x28,0x12]
3244 ; X64-SSE-NEXT: movaps (%rcx), %xmm3 # encoding: [0x0f,0x28,0x19]
3245 ; X64-SSE-NEXT: movaps %xmm0, %xmm4 # encoding: [0x0f,0x28,0xe0]
3246 ; X64-SSE-NEXT: unpcklps %xmm1, %xmm4 # encoding: [0x0f,0x14,0xe1]
3247 ; X64-SSE-NEXT: # xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
3248 ; X64-SSE-NEXT: movaps %xmm2, %xmm5 # encoding: [0x0f,0x28,0xea]
3249 ; X64-SSE-NEXT: unpcklps %xmm3, %xmm5 # encoding: [0x0f,0x14,0xeb]
3250 ; X64-SSE-NEXT: # xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
3251 ; X64-SSE-NEXT: unpckhps %xmm1, %xmm0 # encoding: [0x0f,0x15,0xc1]
3253 ; X64-SSE-NEXT: unpckhps %xmm3, %xmm2 # encoding: [0x0f,0x15,0xd3]
3255 ; X64-SSE-NEXT: movaps %xmm4, %xmm1 # encoding: [0x0f,0x28,0xcc]
3256 ; X64-SSE-NEXT: movlhps %xmm5, %xmm1 # encoding: [0x0f,0x16,0xcd]
3257 ; X64-SSE-NEXT: # xmm1 = xmm1[0],xmm5[0]
3258 ; X64-SSE-NEXT: movhlps %xmm4, %xmm5 # encoding: [0x0f,0x12,0xec]
3260 ; X64-SSE-NEXT: movaps %xmm0, %xmm3 # encoding: [0x0f,0x28,0xd8]
3261 ; X64-SSE-NEXT: movlhps %xmm2, %xmm3 # encoding: [0x0f,0x16,0xda]
3262 ; X64-SSE-NEXT: # xmm3 = xmm3[0],xmm2[0]
3263 ; X64-SSE-NEXT: movhlps %xmm0, %xmm2 # encoding: [0x0f,0x12,0xd0]
3265 ; X64-SSE-NEXT: movaps %xmm1, (%rdi) # encoding: [0x0f,0x29,0x0f]
3266 ; X64-SSE-NEXT: movaps %xmm5, (%rsi) # encoding: [0x0f,0x29,0x2e]
3267 ; X64-SSE-NEXT: movaps %xmm3, (%rdx) # encoding: [0x0f,0x29,0x1a]
3268 ; X64-SSE-NEXT: movaps %xmm2, (%rcx) # encoding: [0x0f,0x29,0x11]
3269 ; X64-SSE-NEXT: retq # encoding: [0xc3]
3272 ; X64-AVX1: # %bb.0:
3273 ; X64-AVX1-NEXT: vmovaps (%rdi), %xmm0 # encoding: [0xc5,0xf8,0x28,0x07]
3274 ; X64-AVX1-NEXT: vmovaps (%rsi), %xmm1 # encoding: [0xc5,0xf8,0x28,0x0e]
3275 ; X64-AVX1-NEXT: vmovaps (%rdx), %xmm2 # encoding: [0xc5,0xf8,0x28,0x12]
3276 ; X64-AVX1-NEXT: vmovaps (%rcx), %xmm3 # encoding: [0xc5,0xf8,0x28,0x19]
3277 ; X64-AVX1-NEXT: vunpcklps %xmm1, %xmm0, %xmm4 # encoding: [0xc5,0xf8,0x14,0xe1]
3278 ; X64-AVX1-NEXT: # xmm4 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3279 ; X64-AVX1-NEXT: vunpcklps %xmm3, %xmm2, %xmm5 # encoding: [0xc5,0xe8,0x14,0xeb]
3280 ; X64-AVX1-NEXT: # xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
3281 ; X64-AVX1-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x15,0xc1]
3283 ; X64-AVX1-NEXT: vunpckhps %xmm3, %xmm2, %xmm1 # encoding: [0xc5,0xe8,0x15,0xcb]
3285 ; X64-AVX1-NEXT: vmovlhps %xmm5, %xmm4, %xmm2 # encoding: [0xc5,0xd8,0x16,0xd5]
3286 ; X64-AVX1-NEXT: # xmm2 = xmm4[0],xmm5[0]
3287 ; X64-AVX1-NEXT: vunpckhpd %xmm5, %xmm4, %xmm3 # encoding: [0xc5,0xd9,0x15,0xdd]
3289 ; X64-AVX1-NEXT: vmovlhps %xmm1, %xmm0, %xmm4 # encoding: [0xc5,0xf8,0x16,0xe1]
3290 ; X64-AVX1-NEXT: # xmm4 = xmm0[0],xmm1[0]
3291 ; X64-AVX1-NEXT: vunpckhpd %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf9,0x15,0xc1]
3293 ; X64-AVX1-NEXT: vmovaps %xmm2, (%rdi) # encoding: [0xc5,0xf8,0x29,0x17]
3294 ; X64-AVX1-NEXT: vmovaps %xmm3, (%rsi) # encoding: [0xc5,0xf8,0x29,0x1e]
3295 ; X64-AVX1-NEXT: vmovaps %xmm4, (%rdx) # encoding: [0xc5,0xf8,0x29,0x22]
3296 ; X64-AVX1-NEXT: vmovaps %xmm0, (%rcx) # encoding: [0xc5,0xf8,0x29,0x01]
3297 ; X64-AVX1-NEXT: retq # encoding: [0xc3]
3300 ; X64-AVX512: # %bb.0:
3301 ; X64-AVX512-NEXT: vmovaps (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
3302 ; X64-AVX512-NEXT: vmovaps (%rsi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x0e]
3303 ; X64-AVX512-NEXT: vmovaps (%rdx), %xmm2 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x12]
3304 ; X64-AVX512-NEXT: vmovaps (%rcx), %xmm3 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x19]
3305 ; X64-AVX512-NEXT: vunpcklps %xmm1, %xmm0, %xmm4 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x14,0xe1]
3306 ; X64-AVX512-NEXT: # xmm4 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3307 ; X64-AVX512-NEXT: vunpcklps %xmm3, %xmm2, %xmm5 # EVEX TO VEX Compression encoding: [0xc5,0xe8,0x14,0xeb]
3308 ; X64-AVX512-NEXT: # xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
3309 ; X64-AVX512-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x15,0xc1]
3311 ; X64-AVX512-NEXT: vunpckhps %xmm3, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xe8,0x15,0xcb]
3313 ; X64-AVX512-NEXT: vmovlhps %xmm5, %xmm4, %xmm2 # EVEX TO VEX Compression encoding: [0xc5,0xd8,0x16,0xd5]
3314 ; X64-AVX512-NEXT: # xmm2 = xmm4[0],xmm5[0]
3315 ; X64-AVX512-NEXT: vunpckhpd %xmm5, %xmm4, %xmm3 # EVEX TO VEX Compression encoding: [0xc5,0xd9,0x15,0xdd]
3317 ; X64-AVX512-NEXT: vmovlhps %xmm1, %xmm0, %xmm4 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x16,0xe1]
3318 ; X64-AVX512-NEXT: # xmm4 = xmm0[0],xmm1[0]
3319 ; X64-AVX512-NEXT: vunpckhpd %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x15,0xc1]
3321 ; X64-AVX512-NEXT: vmovaps %xmm2, (%rdi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x17]
3322 ; X64-AVX512-NEXT: vmovaps %xmm3, (%rsi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x1e]
3323 ; X64-AVX512-NEXT: vmovaps %xmm4, (%rdx) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x22]
3324 ; X64-AVX512-NEXT: vmovaps %xmm0, (%rcx) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x01]
3325 ; X64-AVX512-NEXT: retq # encoding: [0xc3]
3330 %tmp0 = shufflevector <4 x float> %row0, <4 x float> %row1, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
3331 %tmp2 = shufflevector <4 x float> %row2, <4 x float> %row3, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
3334 %res0 = shufflevector <4 x float> %tmp0, <4 x float> %tmp2, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
3336 %res2 = shufflevector <4 x float> %tmp1, <4 x float> %tmp3, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
3347 ; SSE: # %bb.0:
3348 ; SSE-NEXT: ucomiss %xmm1, %xmm0 # encoding: [0x0f,0x2e,0xc1]
3349 ; SSE-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
3350 ; SSE-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
3351 ; SSE-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
3352 ; SSE-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3353 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3356 ; AVX1: # %bb.0:
3357 ; AVX1-NEXT: vucomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2e,0xc1]
3358 ; AVX1-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
3359 ; AVX1-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
3360 ; AVX1-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
3361 ; AVX1-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3362 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3365 ; AVX512: # %bb.0:
3366 ; AVX512-NEXT: vucomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
3367 ; AVX512-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
3368 ; AVX512-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
3369 ; AVX512-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
3370 ; AVX512-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3371 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3379 ; SSE: # %bb.0:
3380 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3381 ; SSE-NEXT: ucomiss %xmm1, %xmm0 # encoding: [0x0f,0x2e,0xc1]
3382 ; SSE-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3383 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3386 ; AVX1: # %bb.0:
3387 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3388 ; AVX1-NEXT: vucomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2e,0xc1]
3389 ; AVX1-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3390 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3393 ; AVX512: # %bb.0:
3394 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3395 ; AVX512-NEXT: vucomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
3396 ; AVX512-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3397 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3405 ; SSE: # %bb.0:
3406 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3407 ; SSE-NEXT: ucomiss %xmm1, %xmm0 # encoding: [0x0f,0x2e,0xc1]
3408 ; SSE-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3409 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3412 ; AVX1: # %bb.0:
3413 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3414 ; AVX1-NEXT: vucomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2e,0xc1]
3415 ; AVX1-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3416 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3419 ; AVX512: # %bb.0:
3420 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3421 ; AVX512-NEXT: vucomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
3422 ; AVX512-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3423 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3431 ; SSE: # %bb.0:
3432 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3433 ; SSE-NEXT: ucomiss %xmm0, %xmm1 # encoding: [0x0f,0x2e,0xc8]
3434 ; SSE-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3435 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3438 ; AVX1: # %bb.0:
3439 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3440 ; AVX1-NEXT: vucomiss %xmm0, %xmm1 # encoding: [0xc5,0xf8,0x2e,0xc8]
3441 ; AVX1-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3442 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3445 ; AVX512: # %bb.0:
3446 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3447 ; AVX512-NEXT: vucomiss %xmm0, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
3448 ; AVX512-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
3449 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3457 ; SSE: # %bb.0:
3458 ; SSE-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3459 ; SSE-NEXT: ucomiss %xmm0, %xmm1 # encoding: [0x0f,0x2e,0xc8]
3460 ; SSE-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3461 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3464 ; AVX1: # %bb.0:
3465 ; AVX1-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3466 ; AVX1-NEXT: vucomiss %xmm0, %xmm1 # encoding: [0xc5,0xf8,0x2e,0xc8]
3467 ; AVX1-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3468 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3471 ; AVX512: # %bb.0:
3472 ; AVX512-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
3473 ; AVX512-NEXT: vucomiss %xmm0, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
3474 ; AVX512-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
3475 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3483 ; SSE: # %bb.0:
3484 ; SSE-NEXT: ucomiss %xmm1, %xmm0 # encoding: [0x0f,0x2e,0xc1]
3485 ; SSE-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
3486 ; SSE-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
3487 ; SSE-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
3488 ; SSE-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3489 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3492 ; AVX1: # %bb.0:
3493 ; AVX1-NEXT: vucomiss %xmm1, %xmm0 # encoding: [0xc5,0xf8,0x2e,0xc1]
3494 ; AVX1-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
3495 ; AVX1-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
3496 ; AVX1-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
3497 ; AVX1-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3498 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3501 ; AVX512: # %bb.0:
3502 ; AVX512-NEXT: vucomiss %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
3503 ; AVX512-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
3504 ; AVX512-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
3505 ; AVX512-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
3506 ; AVX512-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
3507 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3515 ; CHECK: # %bb.0:
3516 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3522 ; SSE: # %bb.0:
3523 ; SSE-NEXT: unpckhps %xmm1, %xmm0 # encoding: [0x0f,0x15,0xc1]
3525 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3528 ; AVX1: # %bb.0:
3529 ; AVX1-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x15,0xc1]
3531 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3534 ; AVX512: # %bb.0:
3535 ; AVX512-NEXT: vunpckhps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x15,0xc1]
3537 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3544 ; SSE: # %bb.0:
3545 ; SSE-NEXT: unpcklps %xmm1, %xmm0 # encoding: [0x0f,0x14,0xc1]
3546 ; SSE-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3547 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3550 ; AVX1: # %bb.0:
3551 ; AVX1-NEXT: vunpcklps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x14,0xc1]
3552 ; AVX1-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3553 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3556 ; AVX512: # %bb.0:
3557 ; AVX512-NEXT: vunpcklps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x14,0xc1]
3558 ; AVX512-NEXT: # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3559 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3560 %res = shufflevector <4 x float> %a0, <4 x float> %a1, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
3566 ; SSE: # %bb.0:
3567 ; SSE-NEXT: xorps %xmm1, %xmm0 # encoding: [0x0f,0x57,0xc1]
3568 ; SSE-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3571 ; AVX1: # %bb.0:
3572 ; AVX1-NEXT: vxorps %xmm1, %xmm0, %xmm0 # encoding: [0xc5,0xf8,0x57,0xc1]
3573 ; AVX1-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3576 ; AVX512: # %bb.0:
3577 ; AVX512-NEXT: vxorps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x57,0xc1]
3578 ; AVX512-NEXT: ret{{[l|q]}} # encoding: [0xc3]
3586 !0 = !{i32 1}