Lines Matching +full:0 +full:x87

22 …mtriple=i386-pc-windows-msvc     -mattr=-sse  | FileCheck %s --check-prefixes=CHECK,X86,X87,X87-WIN
23 …mtriple=i386-unknown-linux-gnu -mattr=-sse | FileCheck %s --check-prefixes=CHECK,X86,X87,X87-LIN
39 ; SSE2 (cvtts[ds]2si) and vanilla X87 (fnstcw+fist, 32-bit only).
43 ; X86-AVX512DQVL: # %bb.0:
44 ; X86-AVX512DQVL-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
51 ; X64-AVX512: # %bb.0:
56 ; X86-AVX512DQ: # %bb.0:
57 ; X86-AVX512DQ-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
65 ; X86-AVX512F-WIN: # %bb.0:
70 ; X86-AVX512F-WIN-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
71 ; X86-AVX512F-WIN-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
82 ; X86-AVX512F-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
89 ; X86-AVX512F-LIN: # %bb.0:
91 ; X86-AVX512F-LIN-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
92 ; X86-AVX512F-LIN-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
103 ; X86-AVX512F-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
109 ; X86-SSE3-WIN: # %bb.0:
114 ; X86-SSE3-WIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
115 ; X86-SSE3-WIN-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
128 ; X86-SSE3-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
135 ; X86-SSE3-LIN: # %bb.0:
137 ; X86-SSE3-LIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
138 ; X86-SSE3-LIN-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
151 ; X86-SSE3-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
157 ; X64-SSE: # %bb.0:
158 ; X64-SSE-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
162 ; X64-SSE-NEXT: movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
170 ; X86-SSE2-WIN: # %bb.0:
175 ; X86-SSE2-WIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
176 ; X86-SSE2-WIN-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
183 ; X86-SSE2-WIN-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
185 ; X86-SSE2-WIN-NEXT: flds {{[0-9]+}}(%esp)
186 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
187 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
188 ; X86-SSE2-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
189 ; X86-SSE2-WIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
190 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
191 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
192 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
195 ; X86-SSE2-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
196 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
202 ; X86-SSE2-LIN: # %bb.0:
204 ; X86-SSE2-LIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
205 ; X86-SSE2-LIN-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
212 ; X86-SSE2-LIN-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
214 ; X86-SSE2-LIN-NEXT: flds {{[0-9]+}}(%esp)
215 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
216 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
217 ; X86-SSE2-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
218 ; X86-SSE2-LIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
219 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
220 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
221 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
224 ; X86-SSE2-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
225 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
229 ; X87-WIN-LABEL: f_to_u64:
230 ; X87-WIN: # %bb.0:
231 ; X87-WIN-NEXT: pushl %ebp
232 ; X87-WIN-NEXT: movl %esp, %ebp
233 ; X87-WIN-NEXT: andl $-8, %esp
234 ; X87-WIN-NEXT: subl $16, %esp
235 ; X87-WIN-NEXT: flds 8(%ebp)
236 ; X87-WIN-NEXT: flds __real@5f000000
237 ; X87-WIN-NEXT: fucom %st(1)
238 ; X87-WIN-NEXT: fnstsw %ax
239 ; X87-WIN-NEXT: xorl %edx, %edx
240 ; X87-WIN-NEXT: # kill: def $ah killed $ah killed $ax
241 ; X87-WIN-NEXT: sahf
242 ; X87-WIN-NEXT: setbe %al
243 ; X87-WIN-NEXT: fldz
244 ; X87-WIN-NEXT: jbe LBB0_2
245 ; X87-WIN-NEXT: # %bb.1:
246 ; X87-WIN-NEXT: fstp %st(1)
247 ; X87-WIN-NEXT: fldz
248 ; X87-WIN-NEXT: LBB0_2:
249 ; X87-WIN-NEXT: fstp %st(0)
250 ; X87-WIN-NEXT: fsubrp %st, %st(1)
251 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
252 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
253 ; X87-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
254 ; X87-WIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
255 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
256 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
257 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
258 ; X87-WIN-NEXT: movb %al, %dl
259 ; X87-WIN-NEXT: shll $31, %edx
260 ; X87-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
261 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
262 ; X87-WIN-NEXT: movl %ebp, %esp
263 ; X87-WIN-NEXT: popl %ebp
264 ; X87-WIN-NEXT: retl
266 ; X87-LIN-LABEL: f_to_u64:
267 ; X87-LIN: # %bb.0:
268 ; X87-LIN-NEXT: subl $20, %esp
269 ; X87-LIN-NEXT: flds {{[0-9]+}}(%esp)
270 ; X87-LIN-NEXT: flds {{\.LCPI.*}}
271 ; X87-LIN-NEXT: fucom %st(1)
272 ; X87-LIN-NEXT: fnstsw %ax
273 ; X87-LIN-NEXT: xorl %edx, %edx
274 ; X87-LIN-NEXT: # kill: def $ah killed $ah killed $ax
275 ; X87-LIN-NEXT: sahf
276 ; X87-LIN-NEXT: setbe %al
277 ; X87-LIN-NEXT: fldz
278 ; X87-LIN-NEXT: jbe .LBB0_2
279 ; X87-LIN-NEXT: # %bb.1:
280 ; X87-LIN-NEXT: fstp %st(1)
281 ; X87-LIN-NEXT: fldz
282 ; X87-LIN-NEXT: .LBB0_2:
283 ; X87-LIN-NEXT: fstp %st(0)
284 ; X87-LIN-NEXT: fsubrp %st, %st(1)
285 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
286 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
287 ; X87-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
288 ; X87-LIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
289 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
290 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
291 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
292 ; X87-LIN-NEXT: movb %al, %dl
293 ; X87-LIN-NEXT: shll $31, %edx
294 ; X87-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
295 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
296 ; X87-LIN-NEXT: addl $20, %esp
297 ; X87-LIN-NEXT: retl
304 ; X86-AVX512DQVL: # %bb.0:
305 ; X86-AVX512DQVL-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
312 ; X64-AVX512: # %bb.0:
317 ; X86-AVX512DQ: # %bb.0:
318 ; X86-AVX512DQ-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
326 ; X86-AVX512F-WIN: # %bb.0:
331 ; X86-AVX512F-WIN-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
336 ; X86-AVX512F-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
342 ; X86-AVX512F-LIN: # %bb.0:
344 ; X86-AVX512F-LIN-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
349 ; X86-AVX512F-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
354 ; X86-SSE3-WIN: # %bb.0:
359 ; X86-SSE3-WIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
364 ; X86-SSE3-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
370 ; X86-SSE3-LIN: # %bb.0:
372 ; X86-SSE3-LIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
377 ; X86-SSE3-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
382 ; X64-SSE: # %bb.0:
387 ; X86-SSE2-WIN: # %bb.0:
392 ; X86-SSE2-WIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
393 ; X86-SSE2-WIN-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
394 ; X86-SSE2-WIN-NEXT: flds {{[0-9]+}}(%esp)
395 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
396 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
397 ; X86-SSE2-WIN-NEXT: orl $3072, %eax # imm = 0xC00
398 ; X86-SSE2-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
399 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
400 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
401 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
402 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
403 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
409 ; X86-SSE2-LIN: # %bb.0:
411 ; X86-SSE2-LIN-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
412 ; X86-SSE2-LIN-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
413 ; X86-SSE2-LIN-NEXT: flds {{[0-9]+}}(%esp)
414 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
415 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
416 ; X86-SSE2-LIN-NEXT: orl $3072, %eax # imm = 0xC00
417 ; X86-SSE2-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
418 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
419 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
420 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
421 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
422 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
426 ; X87-WIN-LABEL: f_to_s64:
427 ; X87-WIN: # %bb.0:
428 ; X87-WIN-NEXT: pushl %ebp
429 ; X87-WIN-NEXT: movl %esp, %ebp
430 ; X87-WIN-NEXT: andl $-8, %esp
431 ; X87-WIN-NEXT: subl $16, %esp
432 ; X87-WIN-NEXT: flds 8(%ebp)
433 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
434 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
435 ; X87-WIN-NEXT: orl $3072, %eax # imm = 0xC00
436 ; X87-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
437 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
438 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
439 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
440 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
441 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
442 ; X87-WIN-NEXT: movl %ebp, %esp
443 ; X87-WIN-NEXT: popl %ebp
444 ; X87-WIN-NEXT: retl
446 ; X87-LIN-LABEL: f_to_s64:
447 ; X87-LIN: # %bb.0:
448 ; X87-LIN-NEXT: subl $20, %esp
449 ; X87-LIN-NEXT: flds {{[0-9]+}}(%esp)
450 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
451 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
452 ; X87-LIN-NEXT: orl $3072, %eax # imm = 0xC00
453 ; X87-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
454 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
455 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
456 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
457 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
458 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
459 ; X87-LIN-NEXT: addl $20, %esp
460 ; X87-LIN-NEXT: retl
467 ; X86-AVX512DQVL: # %bb.0:
468 ; X86-AVX512DQVL-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
475 ; X64-AVX512: # %bb.0:
480 ; X86-AVX512DQ: # %bb.0:
481 ; X86-AVX512DQ-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
489 ; X86-AVX512F-WIN: # %bb.0:
494 ; X86-AVX512F-WIN-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
495 ; X86-AVX512F-WIN-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
506 ; X86-AVX512F-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
513 ; X86-AVX512F-LIN: # %bb.0:
515 ; X86-AVX512F-LIN-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
516 ; X86-AVX512F-LIN-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
527 ; X86-AVX512F-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
533 ; X86-SSE3-WIN: # %bb.0:
538 ; X86-SSE3-WIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
539 ; X86-SSE3-WIN-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
552 ; X86-SSE3-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
559 ; X86-SSE3-LIN: # %bb.0:
561 ; X86-SSE3-LIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
562 ; X86-SSE3-LIN-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
575 ; X86-SSE3-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
581 ; X64-SSE: # %bb.0:
582 ; X64-SSE-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
586 ; X64-SSE-NEXT: movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
594 ; X86-SSE2-WIN: # %bb.0:
599 ; X86-SSE2-WIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
600 ; X86-SSE2-WIN-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
607 ; X86-SSE2-WIN-NEXT: movsd %xmm0, {{[0-9]+}}(%esp)
609 ; X86-SSE2-WIN-NEXT: fldl {{[0-9]+}}(%esp)
610 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
611 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
612 ; X86-SSE2-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
613 ; X86-SSE2-WIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
614 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
615 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
616 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
619 ; X86-SSE2-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
620 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
626 ; X86-SSE2-LIN: # %bb.0:
628 ; X86-SSE2-LIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
629 ; X86-SSE2-LIN-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
636 ; X86-SSE2-LIN-NEXT: movsd %xmm0, {{[0-9]+}}(%esp)
638 ; X86-SSE2-LIN-NEXT: fldl {{[0-9]+}}(%esp)
639 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
640 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
641 ; X86-SSE2-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
642 ; X86-SSE2-LIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
643 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
644 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
645 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
648 ; X86-SSE2-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
649 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
653 ; X87-WIN-LABEL: d_to_u64:
654 ; X87-WIN: # %bb.0:
655 ; X87-WIN-NEXT: pushl %ebp
656 ; X87-WIN-NEXT: movl %esp, %ebp
657 ; X87-WIN-NEXT: andl $-8, %esp
658 ; X87-WIN-NEXT: subl $16, %esp
659 ; X87-WIN-NEXT: fldl 8(%ebp)
660 ; X87-WIN-NEXT: flds __real@5f000000
661 ; X87-WIN-NEXT: fucom %st(1)
662 ; X87-WIN-NEXT: fnstsw %ax
663 ; X87-WIN-NEXT: xorl %edx, %edx
664 ; X87-WIN-NEXT: # kill: def $ah killed $ah killed $ax
665 ; X87-WIN-NEXT: sahf
666 ; X87-WIN-NEXT: setbe %al
667 ; X87-WIN-NEXT: fldz
668 ; X87-WIN-NEXT: jbe LBB2_2
669 ; X87-WIN-NEXT: # %bb.1:
670 ; X87-WIN-NEXT: fstp %st(1)
671 ; X87-WIN-NEXT: fldz
672 ; X87-WIN-NEXT: LBB2_2:
673 ; X87-WIN-NEXT: fstp %st(0)
674 ; X87-WIN-NEXT: fsubrp %st, %st(1)
675 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
676 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
677 ; X87-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
678 ; X87-WIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
679 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
680 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
681 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
682 ; X87-WIN-NEXT: movb %al, %dl
683 ; X87-WIN-NEXT: shll $31, %edx
684 ; X87-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
685 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
686 ; X87-WIN-NEXT: movl %ebp, %esp
687 ; X87-WIN-NEXT: popl %ebp
688 ; X87-WIN-NEXT: retl
690 ; X87-LIN-LABEL: d_to_u64:
691 ; X87-LIN: # %bb.0:
692 ; X87-LIN-NEXT: subl $20, %esp
693 ; X87-LIN-NEXT: fldl {{[0-9]+}}(%esp)
694 ; X87-LIN-NEXT: flds {{\.LCPI.*}}
695 ; X87-LIN-NEXT: fucom %st(1)
696 ; X87-LIN-NEXT: fnstsw %ax
697 ; X87-LIN-NEXT: xorl %edx, %edx
698 ; X87-LIN-NEXT: # kill: def $ah killed $ah killed $ax
699 ; X87-LIN-NEXT: sahf
700 ; X87-LIN-NEXT: setbe %al
701 ; X87-LIN-NEXT: fldz
702 ; X87-LIN-NEXT: jbe .LBB2_2
703 ; X87-LIN-NEXT: # %bb.1:
704 ; X87-LIN-NEXT: fstp %st(1)
705 ; X87-LIN-NEXT: fldz
706 ; X87-LIN-NEXT: .LBB2_2:
707 ; X87-LIN-NEXT: fstp %st(0)
708 ; X87-LIN-NEXT: fsubrp %st, %st(1)
709 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
710 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
711 ; X87-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
712 ; X87-LIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
713 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
714 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
715 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
716 ; X87-LIN-NEXT: movb %al, %dl
717 ; X87-LIN-NEXT: shll $31, %edx
718 ; X87-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
719 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
720 ; X87-LIN-NEXT: addl $20, %esp
721 ; X87-LIN-NEXT: retl
728 ; X86-AVX512DQVL: # %bb.0:
729 ; X86-AVX512DQVL-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
736 ; X64-AVX512: # %bb.0:
741 ; X86-AVX512DQ: # %bb.0:
742 ; X86-AVX512DQ-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
750 ; X86-AVX512F-WIN: # %bb.0:
755 ; X86-AVX512F-WIN-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
760 ; X86-AVX512F-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
766 ; X86-AVX512F-LIN: # %bb.0:
768 ; X86-AVX512F-LIN-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
773 ; X86-AVX512F-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
778 ; X86-SSE3-WIN: # %bb.0:
783 ; X86-SSE3-WIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
788 ; X86-SSE3-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
794 ; X86-SSE3-LIN: # %bb.0:
796 ; X86-SSE3-LIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
801 ; X86-SSE3-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
806 ; X64-SSE: # %bb.0:
811 ; X86-SSE2-WIN: # %bb.0:
816 ; X86-SSE2-WIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
817 ; X86-SSE2-WIN-NEXT: movsd %xmm0, {{[0-9]+}}(%esp)
818 ; X86-SSE2-WIN-NEXT: fldl {{[0-9]+}}(%esp)
819 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
820 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
821 ; X86-SSE2-WIN-NEXT: orl $3072, %eax # imm = 0xC00
822 ; X86-SSE2-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
823 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
824 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
825 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
826 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
827 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
833 ; X86-SSE2-LIN: # %bb.0:
835 ; X86-SSE2-LIN-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
836 ; X86-SSE2-LIN-NEXT: movsd %xmm0, {{[0-9]+}}(%esp)
837 ; X86-SSE2-LIN-NEXT: fldl {{[0-9]+}}(%esp)
838 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
839 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
840 ; X86-SSE2-LIN-NEXT: orl $3072, %eax # imm = 0xC00
841 ; X86-SSE2-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
842 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
843 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
844 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
845 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
846 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
850 ; X87-WIN-LABEL: d_to_s64:
851 ; X87-WIN: # %bb.0:
852 ; X87-WIN-NEXT: pushl %ebp
853 ; X87-WIN-NEXT: movl %esp, %ebp
854 ; X87-WIN-NEXT: andl $-8, %esp
855 ; X87-WIN-NEXT: subl $16, %esp
856 ; X87-WIN-NEXT: fldl 8(%ebp)
857 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
858 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
859 ; X87-WIN-NEXT: orl $3072, %eax # imm = 0xC00
860 ; X87-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
861 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
862 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
863 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
864 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
865 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
866 ; X87-WIN-NEXT: movl %ebp, %esp
867 ; X87-WIN-NEXT: popl %ebp
868 ; X87-WIN-NEXT: retl
870 ; X87-LIN-LABEL: d_to_s64:
871 ; X87-LIN: # %bb.0:
872 ; X87-LIN-NEXT: subl $20, %esp
873 ; X87-LIN-NEXT: fldl {{[0-9]+}}(%esp)
874 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
875 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
876 ; X87-LIN-NEXT: orl $3072, %eax # imm = 0xC00
877 ; X87-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
878 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
879 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
880 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
881 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
882 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
883 ; X87-LIN-NEXT: addl $20, %esp
884 ; X87-LIN-NEXT: retl
891 ; X86-AVX512-WIN: # %bb.0:
907 ; X86-AVX512-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
914 ; X86-AVX512-LIN: # %bb.0:
916 ; X86-AVX512-LIN-NEXT: fldt {{[0-9]+}}(%esp)
927 ; X86-AVX512-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
933 ; X64-AVX512-WIN: # %bb.0:
951 ; X64-AVX512-LIN: # %bb.0:
952 ; X64-AVX512-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
960 ; X64-AVX512-LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
963 ; X64-AVX512-LIN-NEXT: xorq -{{[0-9]+}}(%rsp), %rax
967 ; X86-SSE3-WIN: # %bb.0:
983 ; X86-SSE3-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
990 ; X86-SSE3-LIN: # %bb.0:
992 ; X86-SSE3-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1003 ; X86-SSE3-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
1009 ; X64-SSE3-WIN: # %bb.0:
1027 ; X64-SSE3-LIN: # %bb.0:
1028 ; X64-SSE3-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
1036 ; X64-SSE3-LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
1039 ; X64-SSE3-LIN-NEXT: xorq -{{[0-9]+}}(%rsp), %rax
1043 ; X86-SSE2-WIN: # %bb.0:
1057 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1058 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1059 ; X86-SSE2-WIN-NEXT: orl $3072, %eax # imm = 0xC00
1060 ; X86-SSE2-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1061 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1062 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
1063 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1065 ; X86-SSE2-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
1066 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1072 ; X86-SSE2-LIN: # %bb.0:
1074 ; X86-SSE2-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1083 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1084 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1085 ; X86-SSE2-LIN-NEXT: orl $3072, %eax # imm = 0xC00
1086 ; X86-SSE2-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1087 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1088 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
1089 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1091 ; X86-SSE2-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
1092 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1097 ; X64-SSE2-WIN: # %bb.0:
1108 ; X64-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%rsp)
1109 ; X64-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%rsp), %ecx
1110 ; X64-SSE2-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
1111 ; X64-SSE2-WIN-NEXT: movw %cx, {{[0-9]+}}(%rsp)
1112 ; X64-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%rsp)
1113 ; X64-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%rsp)
1114 ; X64-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%rsp)
1116 ; X64-SSE2-WIN-NEXT: xorq {{[0-9]+}}(%rsp), %rax
1121 ; X64-SSE2-LIN: # %bb.0:
1122 ; X64-SSE2-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
1131 ; X64-SSE2-LIN-NEXT: fnstcw -{{[0-9]+}}(%rsp)
1132 ; X64-SSE2-LIN-NEXT: movzwl -{{[0-9]+}}(%rsp), %ecx
1133 ; X64-SSE2-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
1134 ; X64-SSE2-LIN-NEXT: movw %cx, -{{[0-9]+}}(%rsp)
1135 ; X64-SSE2-LIN-NEXT: fldcw -{{[0-9]+}}(%rsp)
1136 ; X64-SSE2-LIN-NEXT: fistpll -{{[0-9]+}}(%rsp)
1137 ; X64-SSE2-LIN-NEXT: fldcw -{{[0-9]+}}(%rsp)
1139 ; X64-SSE2-LIN-NEXT: xorq -{{[0-9]+}}(%rsp), %rax
1142 ; X87-WIN-LABEL: x_to_u64:
1143 ; X87-WIN: # %bb.0:
1144 ; X87-WIN-NEXT: pushl %ebp
1145 ; X87-WIN-NEXT: movl %esp, %ebp
1146 ; X87-WIN-NEXT: andl $-8, %esp
1147 ; X87-WIN-NEXT: subl $16, %esp
1148 ; X87-WIN-NEXT: fldt 8(%ebp)
1149 ; X87-WIN-NEXT: flds __real@5f000000
1150 ; X87-WIN-NEXT: fucom %st(1)
1151 ; X87-WIN-NEXT: fnstsw %ax
1152 ; X87-WIN-NEXT: xorl %edx, %edx
1153 ; X87-WIN-NEXT: # kill: def $ah killed $ah killed $ax
1154 ; X87-WIN-NEXT: sahf
1155 ; X87-WIN-NEXT: setbe %al
1156 ; X87-WIN-NEXT: fldz
1157 ; X87-WIN-NEXT: jbe LBB4_2
1158 ; X87-WIN-NEXT: # %bb.1:
1159 ; X87-WIN-NEXT: fstp %st(1)
1160 ; X87-WIN-NEXT: fldz
1161 ; X87-WIN-NEXT: LBB4_2:
1162 ; X87-WIN-NEXT: fstp %st(0)
1163 ; X87-WIN-NEXT: fsubrp %st, %st(1)
1164 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1165 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
1166 ; X87-WIN-NEXT: orl $3072, %ecx # imm = 0xC00
1167 ; X87-WIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
1168 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1169 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
1170 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1171 ; X87-WIN-NEXT: movb %al, %dl
1172 ; X87-WIN-NEXT: shll $31, %edx
1173 ; X87-WIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
1174 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1175 ; X87-WIN-NEXT: movl %ebp, %esp
1176 ; X87-WIN-NEXT: popl %ebp
1177 ; X87-WIN-NEXT: retl
1179 ; X87-LIN-LABEL: x_to_u64:
1180 ; X87-LIN: # %bb.0:
1181 ; X87-LIN-NEXT: subl $20, %esp
1182 ; X87-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1183 ; X87-LIN-NEXT: flds {{\.LCPI.*}}
1184 ; X87-LIN-NEXT: fucom %st(1)
1185 ; X87-LIN-NEXT: fnstsw %ax
1186 ; X87-LIN-NEXT: xorl %edx, %edx
1187 ; X87-LIN-NEXT: # kill: def $ah killed $ah killed $ax
1188 ; X87-LIN-NEXT: sahf
1189 ; X87-LIN-NEXT: setbe %al
1190 ; X87-LIN-NEXT: fldz
1191 ; X87-LIN-NEXT: jbe .LBB4_2
1192 ; X87-LIN-NEXT: # %bb.1:
1193 ; X87-LIN-NEXT: fstp %st(1)
1194 ; X87-LIN-NEXT: fldz
1195 ; X87-LIN-NEXT: .LBB4_2:
1196 ; X87-LIN-NEXT: fstp %st(0)
1197 ; X87-LIN-NEXT: fsubrp %st, %st(1)
1198 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1199 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
1200 ; X87-LIN-NEXT: orl $3072, %ecx # imm = 0xC00
1201 ; X87-LIN-NEXT: movw %cx, {{[0-9]+}}(%esp)
1202 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1203 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
1204 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1205 ; X87-LIN-NEXT: movb %al, %dl
1206 ; X87-LIN-NEXT: shll $31, %edx
1207 ; X87-LIN-NEXT: xorl {{[0-9]+}}(%esp), %edx
1208 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1209 ; X87-LIN-NEXT: addl $20, %esp
1210 ; X87-LIN-NEXT: retl
1217 ; X86-AVX512-WIN: # %bb.0:
1225 ; X86-AVX512-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1231 ; X86-AVX512-LIN: # %bb.0:
1233 ; X86-AVX512-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1236 ; X86-AVX512-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1241 ; X64-AVX512-WIN: # %bb.0:
1250 ; X64-AVX512-LIN: # %bb.0:
1251 ; X64-AVX512-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
1252 ; X64-AVX512-LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
1253 ; X64-AVX512-LIN-NEXT: movq -{{[0-9]+}}(%rsp), %rax
1257 ; X86-SSE3-WIN: # %bb.0:
1265 ; X86-SSE3-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1271 ; X86-SSE3-LIN: # %bb.0:
1273 ; X86-SSE3-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1276 ; X86-SSE3-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1281 ; X64-SSE3-WIN: # %bb.0:
1290 ; X64-SSE3-LIN: # %bb.0:
1291 ; X64-SSE3-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
1292 ; X64-SSE3-LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
1293 ; X64-SSE3-LIN-NEXT: movq -{{[0-9]+}}(%rsp), %rax
1297 ; X86-SSE2-WIN: # %bb.0:
1303 ; X86-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1304 ; X86-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1305 ; X86-SSE2-WIN-NEXT: orl $3072, %eax # imm = 0xC00
1306 ; X86-SSE2-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1307 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1308 ; X86-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
1309 ; X86-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1310 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1311 ; X86-SSE2-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1317 ; X86-SSE2-LIN: # %bb.0:
1319 ; X86-SSE2-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1320 ; X86-SSE2-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1321 ; X86-SSE2-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1322 ; X86-SSE2-LIN-NEXT: orl $3072, %eax # imm = 0xC00
1323 ; X86-SSE2-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1324 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1325 ; X86-SSE2-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
1326 ; X86-SSE2-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1327 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1328 ; X86-SSE2-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1333 ; X64-SSE2-WIN: # %bb.0:
1336 ; X64-SSE2-WIN-NEXT: fnstcw {{[0-9]+}}(%rsp)
1337 ; X64-SSE2-WIN-NEXT: movzwl {{[0-9]+}}(%rsp), %eax
1338 ; X64-SSE2-WIN-NEXT: orl $3072, %eax # imm = 0xC00
1339 ; X64-SSE2-WIN-NEXT: movw %ax, {{[0-9]+}}(%rsp)
1340 ; X64-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%rsp)
1341 ; X64-SSE2-WIN-NEXT: fistpll {{[0-9]+}}(%rsp)
1342 ; X64-SSE2-WIN-NEXT: fldcw {{[0-9]+}}(%rsp)
1343 ; X64-SSE2-WIN-NEXT: movq {{[0-9]+}}(%rsp), %rax
1348 ; X64-SSE2-LIN: # %bb.0:
1349 ; X64-SSE2-LIN-NEXT: fldt {{[0-9]+}}(%rsp)
1350 ; X64-SSE2-LIN-NEXT: fnstcw -{{[0-9]+}}(%rsp)
1351 ; X64-SSE2-LIN-NEXT: movzwl -{{[0-9]+}}(%rsp), %eax
1352 ; X64-SSE2-LIN-NEXT: orl $3072, %eax # imm = 0xC00
1353 ; X64-SSE2-LIN-NEXT: movw %ax, -{{[0-9]+}}(%rsp)
1354 ; X64-SSE2-LIN-NEXT: fldcw -{{[0-9]+}}(%rsp)
1355 ; X64-SSE2-LIN-NEXT: fistpll -{{[0-9]+}}(%rsp)
1356 ; X64-SSE2-LIN-NEXT: fldcw -{{[0-9]+}}(%rsp)
1357 ; X64-SSE2-LIN-NEXT: movq -{{[0-9]+}}(%rsp), %rax
1360 ; X87-WIN-LABEL: x_to_s64:
1361 ; X87-WIN: # %bb.0:
1362 ; X87-WIN-NEXT: pushl %ebp
1363 ; X87-WIN-NEXT: movl %esp, %ebp
1364 ; X87-WIN-NEXT: andl $-8, %esp
1365 ; X87-WIN-NEXT: subl $16, %esp
1366 ; X87-WIN-NEXT: fldt 8(%ebp)
1367 ; X87-WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1368 ; X87-WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1369 ; X87-WIN-NEXT: orl $3072, %eax # imm = 0xC00
1370 ; X87-WIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1371 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1372 ; X87-WIN-NEXT: fistpll {{[0-9]+}}(%esp)
1373 ; X87-WIN-NEXT: fldcw {{[0-9]+}}(%esp)
1374 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1375 ; X87-WIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1376 ; X87-WIN-NEXT: movl %ebp, %esp
1377 ; X87-WIN-NEXT: popl %ebp
1378 ; X87-WIN-NEXT: retl
1380 ; X87-LIN-LABEL: x_to_s64:
1381 ; X87-LIN: # %bb.0:
1382 ; X87-LIN-NEXT: subl $20, %esp
1383 ; X87-LIN-NEXT: fldt {{[0-9]+}}(%esp)
1384 ; X87-LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
1385 ; X87-LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1386 ; X87-LIN-NEXT: orl $3072, %eax # imm = 0xC00
1387 ; X87-LIN-NEXT: movw %ax, {{[0-9]+}}(%esp)
1388 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1389 ; X87-LIN-NEXT: fistpll {{[0-9]+}}(%esp)
1390 ; X87-LIN-NEXT: fldcw {{[0-9]+}}(%esp)
1391 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %eax
1392 ; X87-LIN-NEXT: movl {{[0-9]+}}(%esp), %edx
1393 ; X87-LIN-NEXT: addl $20, %esp
1394 ; X87-LIN-NEXT: retl
1401 ; X86-AVX512-WIN: # %bb.0:
1403 ; X86-AVX512-WIN-NEXT: vmovups {{[0-9]+}}(%esp), %xmm0
1410 ; X86-AVX512-LIN: # %bb.0:
1412 ; X86-AVX512-LIN-NEXT: vmovaps {{[0-9]+}}(%esp), %xmm0
1419 ; X64-AVX512-WIN: # %bb.0:
1426 ; X64-AVX512-LIN: # %bb.0:
1433 ; X86-SSE-WIN: # %bb.0:
1434 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1435 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1436 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1437 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1443 ; X86-SSE-LIN: # %bb.0:
1445 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1446 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1447 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1448 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1454 ; X64-SSE-WIN: # %bb.0:
1461 ; X64-SSE-LIN: # %bb.0:
1467 ; X87-WIN-LABEL: t_to_u64:
1468 ; X87-WIN: # %bb.0:
1469 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1470 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1471 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1472 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1473 ; X87-WIN-NEXT: calll ___fixunstfdi
1474 ; X87-WIN-NEXT: addl $16, %esp
1475 ; X87-WIN-NEXT: retl
1477 ; X87-LIN-LABEL: t_to_u64:
1478 ; X87-LIN: # %bb.0:
1479 ; X87-LIN-NEXT: subl $12, %esp
1480 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1481 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1482 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1483 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1484 ; X87-LIN-NEXT: calll __fixunstfdi
1485 ; X87-LIN-NEXT: addl $28, %esp
1486 ; X87-LIN-NEXT: retl
1493 ; X86-AVX512-WIN: # %bb.0:
1495 ; X86-AVX512-WIN-NEXT: vmovups {{[0-9]+}}(%esp), %xmm0
1502 ; X86-AVX512-LIN: # %bb.0:
1504 ; X86-AVX512-LIN-NEXT: vmovaps {{[0-9]+}}(%esp), %xmm0
1511 ; X64-AVX512-WIN: # %bb.0:
1518 ; X64-AVX512-LIN: # %bb.0:
1525 ; X86-SSE-WIN: # %bb.0:
1526 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1527 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1528 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1529 ; X86-SSE-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1535 ; X86-SSE-LIN: # %bb.0:
1537 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1538 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1539 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1540 ; X86-SSE-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1546 ; X64-SSE-WIN: # %bb.0:
1553 ; X64-SSE-LIN: # %bb.0:
1559 ; X87-WIN-LABEL: t_to_s64:
1560 ; X87-WIN: # %bb.0:
1561 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1562 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1563 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1564 ; X87-WIN-NEXT: pushl {{[0-9]+}}(%esp)
1565 ; X87-WIN-NEXT: calll ___fixtfdi
1566 ; X87-WIN-NEXT: addl $16, %esp
1567 ; X87-WIN-NEXT: retl
1569 ; X87-LIN-LABEL: t_to_s64:
1570 ; X87-LIN: # %bb.0:
1571 ; X87-LIN-NEXT: subl $12, %esp
1572 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1573 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1574 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1575 ; X87-LIN-NEXT: pushl {{[0-9]+}}(%esp)
1576 ; X87-LIN-NEXT: calll __fixtfdi
1577 ; X87-LIN-NEXT: addl $28, %esp
1578 ; X87-LIN-NEXT: retl