Lines Matching refs:WIN64
3 …le=x86_64-win32 -mattr=+avx512bw | FileCheck %s --check-prefix=CHECK64 --check-prefix=WIN64
36 ; WIN64-LABEL: test_argv64i1:
37 ; WIN64: # %bb.0:
38 ; WIN64-NEXT: addq %rcx, %rax
39 ; WIN64-NEXT: addq %rdx, %rax
40 ; WIN64-NEXT: addq %rdi, %rax
41 ; WIN64-NEXT: addq %rsi, %rax
42 ; WIN64-NEXT: addq %r8, %rax
43 ; WIN64-NEXT: addq %r9, %rax
44 ; WIN64-NEXT: addq %r10, %rax
45 ; WIN64-NEXT: addq %r11, %rax
46 ; WIN64-NEXT: addq %r12, %rax
47 ; WIN64-NEXT: addq %r14, %rax
48 ; WIN64-NEXT: addq %r15, %rax
49 ; WIN64-NEXT: addq {{[0-9]+}}(%rsp), %rax
50 ; WIN64-NEXT: retq
118 ; WIN64-LABEL: caller_argv64i1:
119 ; WIN64: # %bb.0: # %entry
120 ; WIN64-NEXT: pushq %r15
121 ; WIN64-NEXT: .seh_pushreg %r15
122 ; WIN64-NEXT: pushq %r14
123 ; WIN64-NEXT: .seh_pushreg %r14
124 ; WIN64-NEXT: pushq %r12
125 ; WIN64-NEXT: .seh_pushreg %r12
126 ; WIN64-NEXT: pushq %rsi
127 ; WIN64-NEXT: .seh_pushreg %rsi
128 ; WIN64-NEXT: pushq %rdi
129 ; WIN64-NEXT: .seh_pushreg %rdi
130 ; WIN64-NEXT: subq $48, %rsp
131 ; WIN64-NEXT: .seh_stackalloc 48
132 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
133 ; WIN64-NEXT: .seh_savexmm %xmm7, 32
134 ; WIN64-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
135 ; WIN64-NEXT: .seh_savexmm %xmm6, 16
136 ; WIN64-NEXT: .seh_endprologue
137 ; WIN64-NEXT: movabsq $4294967298, %rax # imm = 0x100000002
138 ; WIN64-NEXT: movq %rax, (%rsp)
139 ; WIN64-NEXT: movq %rax, %rcx
140 ; WIN64-NEXT: movq %rax, %rdx
141 ; WIN64-NEXT: movq %rax, %rdi
142 ; WIN64-NEXT: movq %rax, %r8
143 ; WIN64-NEXT: movq %rax, %r9
144 ; WIN64-NEXT: movq %rax, %r10
145 ; WIN64-NEXT: movq %rax, %r11
146 ; WIN64-NEXT: movq %rax, %r12
147 ; WIN64-NEXT: movq %rax, %r14
148 ; WIN64-NEXT: movq %rax, %r15
149 ; WIN64-NEXT: movq %rax, %rsi
150 ; WIN64-NEXT: callq test_argv64i1
151 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
152 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
153 ; WIN64-NEXT: addq $48, %rsp
154 ; WIN64-NEXT: popq %rdi
155 ; WIN64-NEXT: popq %rsi
156 ; WIN64-NEXT: popq %r12
157 ; WIN64-NEXT: popq %r14
158 ; WIN64-NEXT: popq %r15
159 ; WIN64-NEXT: retq
160 ; WIN64-NEXT: .seh_endproc
242 ; WIN64-LABEL: caller_retv64i1:
243 ; WIN64: # %bb.0: # %entry
244 ; WIN64-NEXT: pushq %rsi
245 ; WIN64-NEXT: .seh_pushreg %rsi
246 ; WIN64-NEXT: pushq %rdi
247 ; WIN64-NEXT: .seh_pushreg %rdi
248 ; WIN64-NEXT: subq $40, %rsp
249 ; WIN64-NEXT: .seh_stackalloc 40
250 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
251 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
252 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
253 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
254 ; WIN64-NEXT: .seh_endprologue
255 ; WIN64-NEXT: callq test_retv64i1
256 ; WIN64-NEXT: kmovq %rax, %k0
257 ; WIN64-NEXT: vpmovm2b %k0, %zmm0
258 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
259 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
260 ; WIN64-NEXT: addq $40, %rsp
261 ; WIN64-NEXT: popq %rdi
262 ; WIN64-NEXT: popq %rsi
263 ; WIN64-NEXT: retq
264 ; WIN64-NEXT: .seh_endproc
311 ; WIN64-LABEL: test_argv32i1:
312 ; WIN64: # %bb.0: # %entry
313 ; WIN64-NEXT: pushq %rbp
314 ; WIN64-NEXT: .seh_pushreg %rbp
315 ; WIN64-NEXT: pushq %r11
316 ; WIN64-NEXT: .seh_pushreg %r11
317 ; WIN64-NEXT: pushq %r10
318 ; WIN64-NEXT: .seh_pushreg %r10
319 ; WIN64-NEXT: pushq %rsp
320 ; WIN64-NEXT: .seh_pushreg %rsp
321 ; WIN64-NEXT: subq $152, %rsp
322 ; WIN64-NEXT: .seh_stackalloc 152
323 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
324 ; WIN64-NEXT: .seh_setframe %rbp, 128
325 ; WIN64-NEXT: .seh_endprologue
326 ; WIN64-NEXT: andq $-32, %rsp
327 ; WIN64-NEXT: kmovd %edx, %k0
328 ; WIN64-NEXT: kmovd %eax, %k1
329 ; WIN64-NEXT: kmovd %ecx, %k2
330 ; WIN64-NEXT: vpmovm2b %k2, %zmm0
331 ; WIN64-NEXT: vmovdqa %ymm0, {{[0-9]+}}(%rsp)
332 ; WIN64-NEXT: vpmovm2b %k1, %zmm0
333 ; WIN64-NEXT: vmovdqa %ymm0, {{[0-9]+}}(%rsp)
334 ; WIN64-NEXT: vpmovm2b %k0, %zmm0
335 ; WIN64-NEXT: vmovdqa %ymm0, {{[0-9]+}}(%rsp)
336 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
337 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rdx
338 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %r8
339 ; WIN64-NEXT: vzeroupper
340 ; WIN64-NEXT: callq test_argv32i1helper
341 ; WIN64-NEXT: nop
342 ; WIN64-NEXT: leaq 24(%rbp), %rsp
343 ; WIN64-NEXT: popq %rsp
344 ; WIN64-NEXT: popq %r10
345 ; WIN64-NEXT: popq %r11
346 ; WIN64-NEXT: popq %rbp
347 ; WIN64-NEXT: retq
348 ; WIN64-NEXT: .seh_endproc
412 ; WIN64-LABEL: caller_argv32i1:
413 ; WIN64: # %bb.0: # %entry
414 ; WIN64-NEXT: pushq %rsi
415 ; WIN64-NEXT: .seh_pushreg %rsi
416 ; WIN64-NEXT: pushq %rdi
417 ; WIN64-NEXT: .seh_pushreg %rdi
418 ; WIN64-NEXT: subq $40, %rsp
419 ; WIN64-NEXT: .seh_stackalloc 40
420 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
421 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
422 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
423 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
424 ; WIN64-NEXT: .seh_endprologue
425 ; WIN64-NEXT: movl $1, %eax
426 ; WIN64-NEXT: movl $1, %ecx
427 ; WIN64-NEXT: movl $1, %edx
428 ; WIN64-NEXT: callq test_argv32i1
429 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
430 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
431 ; WIN64-NEXT: addq $40, %rsp
432 ; WIN64-NEXT: popq %rdi
433 ; WIN64-NEXT: popq %rsi
434 ; WIN64-NEXT: retq
435 ; WIN64-NEXT: .seh_endproc
477 ; WIN64-LABEL: caller_retv32i1:
478 ; WIN64: # %bb.0: # %entry
479 ; WIN64-NEXT: pushq %rsi
480 ; WIN64-NEXT: .seh_pushreg %rsi
481 ; WIN64-NEXT: pushq %rdi
482 ; WIN64-NEXT: .seh_pushreg %rdi
483 ; WIN64-NEXT: subq $40, %rsp
484 ; WIN64-NEXT: .seh_stackalloc 40
485 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
486 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
487 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
488 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
489 ; WIN64-NEXT: .seh_endprologue
490 ; WIN64-NEXT: callq test_retv32i1
491 ; WIN64-NEXT: incl %eax
492 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
493 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
494 ; WIN64-NEXT: addq $40, %rsp
495 ; WIN64-NEXT: popq %rdi
496 ; WIN64-NEXT: popq %rsi
497 ; WIN64-NEXT: retq
498 ; WIN64-NEXT: .seh_endproc
546 ; WIN64-LABEL: test_argv16i1:
547 ; WIN64: # %bb.0:
548 ; WIN64-NEXT: pushq %r11
549 ; WIN64-NEXT: .seh_pushreg %r11
550 ; WIN64-NEXT: pushq %r10
551 ; WIN64-NEXT: .seh_pushreg %r10
552 ; WIN64-NEXT: pushq %rsp
553 ; WIN64-NEXT: .seh_pushreg %rsp
554 ; WIN64-NEXT: subq $80, %rsp
555 ; WIN64-NEXT: .seh_stackalloc 80
556 ; WIN64-NEXT: .seh_endprologue
557 ; WIN64-NEXT: kmovd %edx, %k0
558 ; WIN64-NEXT: kmovd %eax, %k1
559 ; WIN64-NEXT: kmovd %ecx, %k2
560 ; WIN64-NEXT: vpmovm2b %k2, %zmm0
561 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
562 ; WIN64-NEXT: vpmovm2b %k1, %zmm0
563 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
564 ; WIN64-NEXT: vpmovm2b %k0, %zmm0
565 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
566 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
567 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rdx
568 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %r8
569 ; WIN64-NEXT: vzeroupper
570 ; WIN64-NEXT: callq test_argv16i1helper
571 ; WIN64-NEXT: nop
572 ; WIN64-NEXT: addq $80, %rsp
573 ; WIN64-NEXT: popq %rsp
574 ; WIN64-NEXT: popq %r10
575 ; WIN64-NEXT: popq %r11
576 ; WIN64-NEXT: retq
577 ; WIN64-NEXT: .seh_endproc
640 ; WIN64-LABEL: caller_argv16i1:
641 ; WIN64: # %bb.0: # %entry
642 ; WIN64-NEXT: pushq %rsi
643 ; WIN64-NEXT: .seh_pushreg %rsi
644 ; WIN64-NEXT: pushq %rdi
645 ; WIN64-NEXT: .seh_pushreg %rdi
646 ; WIN64-NEXT: subq $40, %rsp
647 ; WIN64-NEXT: .seh_stackalloc 40
648 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
649 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
650 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
651 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
652 ; WIN64-NEXT: .seh_endprologue
653 ; WIN64-NEXT: movl $1, %eax
654 ; WIN64-NEXT: movl $1, %ecx
655 ; WIN64-NEXT: movl $1, %edx
656 ; WIN64-NEXT: callq test_argv16i1
657 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
658 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
659 ; WIN64-NEXT: addq $40, %rsp
660 ; WIN64-NEXT: popq %rdi
661 ; WIN64-NEXT: popq %rsi
662 ; WIN64-NEXT: retq
663 ; WIN64-NEXT: .seh_endproc
707 ; WIN64-LABEL: caller_retv16i1:
708 ; WIN64: # %bb.0: # %entry
709 ; WIN64-NEXT: pushq %rsi
710 ; WIN64-NEXT: .seh_pushreg %rsi
711 ; WIN64-NEXT: pushq %rdi
712 ; WIN64-NEXT: .seh_pushreg %rdi
713 ; WIN64-NEXT: subq $40, %rsp
714 ; WIN64-NEXT: .seh_stackalloc 40
715 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
716 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
717 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
718 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
719 ; WIN64-NEXT: .seh_endprologue
720 ; WIN64-NEXT: callq test_retv16i1
721 ; WIN64-NEXT: # kill: def $ax killed $ax def $eax
722 ; WIN64-NEXT: incl %eax
723 ; WIN64-NEXT: # kill: def $ax killed $ax killed $eax
724 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
725 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
726 ; WIN64-NEXT: addq $40, %rsp
727 ; WIN64-NEXT: popq %rdi
728 ; WIN64-NEXT: popq %rsi
729 ; WIN64-NEXT: retq
730 ; WIN64-NEXT: .seh_endproc
780 ; WIN64-LABEL: test_argv8i1:
781 ; WIN64: # %bb.0:
782 ; WIN64-NEXT: pushq %r11
783 ; WIN64-NEXT: .seh_pushreg %r11
784 ; WIN64-NEXT: pushq %r10
785 ; WIN64-NEXT: .seh_pushreg %r10
786 ; WIN64-NEXT: pushq %rsp
787 ; WIN64-NEXT: .seh_pushreg %rsp
788 ; WIN64-NEXT: subq $80, %rsp
789 ; WIN64-NEXT: .seh_stackalloc 80
790 ; WIN64-NEXT: .seh_endprologue
791 ; WIN64-NEXT: kmovd %edx, %k0
792 ; WIN64-NEXT: kmovd %eax, %k1
793 ; WIN64-NEXT: kmovd %ecx, %k2
794 ; WIN64-NEXT: vpmovm2w %k2, %zmm0
795 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
796 ; WIN64-NEXT: vpmovm2w %k1, %zmm0
797 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
798 ; WIN64-NEXT: vpmovm2w %k0, %zmm0
799 ; WIN64-NEXT: vmovdqa %xmm0, {{[0-9]+}}(%rsp)
800 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
801 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rdx
802 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %r8
803 ; WIN64-NEXT: vzeroupper
804 ; WIN64-NEXT: callq test_argv8i1helper
805 ; WIN64-NEXT: nop
806 ; WIN64-NEXT: addq $80, %rsp
807 ; WIN64-NEXT: popq %rsp
808 ; WIN64-NEXT: popq %r10
809 ; WIN64-NEXT: popq %r11
810 ; WIN64-NEXT: retq
811 ; WIN64-NEXT: .seh_endproc
874 ; WIN64-LABEL: caller_argv8i1:
875 ; WIN64: # %bb.0: # %entry
876 ; WIN64-NEXT: pushq %rsi
877 ; WIN64-NEXT: .seh_pushreg %rsi
878 ; WIN64-NEXT: pushq %rdi
879 ; WIN64-NEXT: .seh_pushreg %rdi
880 ; WIN64-NEXT: subq $40, %rsp
881 ; WIN64-NEXT: .seh_stackalloc 40
882 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
883 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
884 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
885 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
886 ; WIN64-NEXT: .seh_endprologue
887 ; WIN64-NEXT: movl $1, %eax
888 ; WIN64-NEXT: movl $1, %ecx
889 ; WIN64-NEXT: movl $1, %edx
890 ; WIN64-NEXT: callq test_argv8i1
891 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
892 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
893 ; WIN64-NEXT: addq $40, %rsp
894 ; WIN64-NEXT: popq %rdi
895 ; WIN64-NEXT: popq %rsi
896 ; WIN64-NEXT: retq
897 ; WIN64-NEXT: .seh_endproc
943 ; WIN64-LABEL: caller_retv8i1:
944 ; WIN64: # %bb.0: # %entry
945 ; WIN64-NEXT: pushq %rsi
946 ; WIN64-NEXT: .seh_pushreg %rsi
947 ; WIN64-NEXT: pushq %rdi
948 ; WIN64-NEXT: .seh_pushreg %rdi
949 ; WIN64-NEXT: subq $40, %rsp
950 ; WIN64-NEXT: .seh_stackalloc 40
951 ; WIN64-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
952 ; WIN64-NEXT: .seh_savexmm %xmm7, 16
953 ; WIN64-NEXT: vmovaps %xmm6, (%rsp) # 16-byte Spill
954 ; WIN64-NEXT: .seh_savexmm %xmm6, 0
955 ; WIN64-NEXT: .seh_endprologue
956 ; WIN64-NEXT: callq test_retv8i1
957 ; WIN64-NEXT: # kill: def $al killed $al def $eax
958 ; WIN64-NEXT: kmovd %eax, %k0
959 ; WIN64-NEXT: vpmovm2w %k0, %zmm0
960 ; WIN64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
961 ; WIN64-NEXT: vmovaps (%rsp), %xmm6 # 16-byte Reload
962 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
963 ; WIN64-NEXT: addq $40, %rsp
964 ; WIN64-NEXT: popq %rdi
965 ; WIN64-NEXT: popq %rsi
966 ; WIN64-NEXT: vzeroupper
967 ; WIN64-NEXT: retq
968 ; WIN64-NEXT: .seh_endproc