• Home
  • Raw
  • Download

Lines Matching refs:WIN64

3 …x512vl -mattr=+avx512bw -mattr=+avx512dq -verify-machineinstrs  | FileCheck %s --check-prefix=WIN64
14 ; WIN64-LABEL: test_argReti1:
15 ; WIN64: # %bb.0:
16 ; WIN64-NEXT: incb %al
17 ; WIN64-NEXT: # kill: def $al killed $al killed $eax
18 ; WIN64-NEXT: retq
41 ; WIN64-LABEL: test_CallargReti1:
42 ; WIN64: # %bb.0:
43 ; WIN64-NEXT: pushq %rsp
44 ; WIN64-NEXT: .seh_pushreg %rsp
45 ; WIN64-NEXT: .seh_endprologue
46 ; WIN64-NEXT: incb %al
47 ; WIN64-NEXT: movzbl %al, %eax
48 ; WIN64-NEXT: callq test_argReti1
49 ; WIN64-NEXT: incb %al
50 ; WIN64-NEXT: popq %rsp
51 ; WIN64-NEXT: retq
52 ; WIN64-NEXT: .seh_endproc
80 ; WIN64-LABEL: test_argReti8:
81 ; WIN64: # %bb.0:
82 ; WIN64-NEXT: incb %al
83 ; WIN64-NEXT: # kill: def $al killed $al killed $eax
84 ; WIN64-NEXT: retq
107 ; WIN64-LABEL: test_CallargReti8:
108 ; WIN64: # %bb.0:
109 ; WIN64-NEXT: pushq %rsp
110 ; WIN64-NEXT: .seh_pushreg %rsp
111 ; WIN64-NEXT: .seh_endprologue
112 ; WIN64-NEXT: incb %al
113 ; WIN64-NEXT: movzbl %al, %eax
114 ; WIN64-NEXT: callq test_argReti8
115 ; WIN64-NEXT: incb %al
116 ; WIN64-NEXT: popq %rsp
117 ; WIN64-NEXT: retq
118 ; WIN64-NEXT: .seh_endproc
146 ; WIN64-LABEL: test_argReti16:
147 ; WIN64: # %bb.0:
148 ; WIN64-NEXT: incl %eax
149 ; WIN64-NEXT: # kill: def $ax killed $ax killed $eax
150 ; WIN64-NEXT: retq
174 ; WIN64-LABEL: test_CallargReti16:
175 ; WIN64: # %bb.0:
176 ; WIN64-NEXT: pushq %rsp
177 ; WIN64-NEXT: .seh_pushreg %rsp
178 ; WIN64-NEXT: .seh_endprologue
179 ; WIN64-NEXT: incl %eax
180 ; WIN64-NEXT: callq test_argReti16
181 ; WIN64-NEXT: # kill: def $ax killed $ax def $eax
182 ; WIN64-NEXT: incl %eax
183 ; WIN64-NEXT: # kill: def $ax killed $ax killed $eax
184 ; WIN64-NEXT: popq %rsp
185 ; WIN64-NEXT: retq
186 ; WIN64-NEXT: .seh_endproc
214 ; WIN64-LABEL: test_argReti32:
215 ; WIN64: # %bb.0:
216 ; WIN64-NEXT: incl %eax
217 ; WIN64-NEXT: retq
238 ; WIN64-LABEL: test_CallargReti32:
239 ; WIN64: # %bb.0:
240 ; WIN64-NEXT: pushq %rsp
241 ; WIN64-NEXT: .seh_pushreg %rsp
242 ; WIN64-NEXT: .seh_endprologue
243 ; WIN64-NEXT: incl %eax
244 ; WIN64-NEXT: callq test_argReti32
245 ; WIN64-NEXT: incl %eax
246 ; WIN64-NEXT: popq %rsp
247 ; WIN64-NEXT: retq
248 ; WIN64-NEXT: .seh_endproc
275 ; WIN64-LABEL: test_argReti64:
276 ; WIN64: # %bb.0:
277 ; WIN64-NEXT: movabsq $4294967299, %rcx # imm = 0x100000003
278 ; WIN64-NEXT: addq %rcx, %rax
279 ; WIN64-NEXT: retq
303 ; WIN64-LABEL: test_CallargReti64:
304 ; WIN64: # %bb.0:
305 ; WIN64-NEXT: pushq %rsp
306 ; WIN64-NEXT: .seh_pushreg %rsp
307 ; WIN64-NEXT: .seh_endprologue
308 ; WIN64-NEXT: incq %rax
309 ; WIN64-NEXT: callq test_argReti64
310 ; WIN64-NEXT: incq %rax
311 ; WIN64-NEXT: popq %rsp
312 ; WIN64-NEXT: retq
313 ; WIN64-NEXT: .seh_endproc
339 ; WIN64-LABEL: test_argRetFloat:
340 ; WIN64: # %bb.0:
341 ; WIN64-NEXT: vaddss __real@{{.*}}(%rip), %xmm0, %xmm0
342 ; WIN64-NEXT: retq
368 ; WIN64-LABEL: test_CallargRetFloat:
369 ; WIN64: # %bb.0:
370 ; WIN64-NEXT: pushq %rsp
371 ; WIN64-NEXT: .seh_pushreg %rsp
372 ; WIN64-NEXT: subq $16, %rsp
373 ; WIN64-NEXT: .seh_stackalloc 16
374 ; WIN64-NEXT: vmovaps %xmm8, (%rsp) # 16-byte Spill
375 ; WIN64-NEXT: .seh_savexmm %xmm8, 0
376 ; WIN64-NEXT: .seh_endprologue
377 ; WIN64-NEXT: vmovss {{.*#+}} xmm8 = mem[0],zero,zero,zero
378 ; WIN64-NEXT: vaddss %xmm0, %xmm8, %xmm0
379 ; WIN64-NEXT: callq test_argRetFloat
380 ; WIN64-NEXT: vaddss %xmm0, %xmm8, %xmm0
381 ; WIN64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
382 ; WIN64-NEXT: addq $16, %rsp
383 ; WIN64-NEXT: popq %rsp
384 ; WIN64-NEXT: retq
385 ; WIN64-NEXT: .seh_endproc
419 ; WIN64-LABEL: test_argRetDouble:
420 ; WIN64: # %bb.0:
421 ; WIN64-NEXT: vaddsd __real@{{.*}}(%rip), %xmm0, %xmm0
422 ; WIN64-NEXT: retq
448 ; WIN64-LABEL: test_CallargRetDouble:
449 ; WIN64: # %bb.0:
450 ; WIN64-NEXT: pushq %rsp
451 ; WIN64-NEXT: .seh_pushreg %rsp
452 ; WIN64-NEXT: subq $16, %rsp
453 ; WIN64-NEXT: .seh_stackalloc 16
454 ; WIN64-NEXT: vmovaps %xmm8, (%rsp) # 16-byte Spill
455 ; WIN64-NEXT: .seh_savexmm %xmm8, 0
456 ; WIN64-NEXT: .seh_endprologue
457 ; WIN64-NEXT: vmovsd {{.*#+}} xmm8 = mem[0],zero
458 ; WIN64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
459 ; WIN64-NEXT: callq test_argRetDouble
460 ; WIN64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
461 ; WIN64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
462 ; WIN64-NEXT: addq $16, %rsp
463 ; WIN64-NEXT: popq %rsp
464 ; WIN64-NEXT: retq
465 ; WIN64-NEXT: .seh_endproc
499 ; WIN64-LABEL: test_argRetf80:
500 ; WIN64: # %bb.0:
501 ; WIN64-NEXT: fadd %st, %st(0)
502 ; WIN64-NEXT: retq
526 ; WIN64-LABEL: test_argParamf80:
527 ; WIN64: # %bb.0:
528 ; WIN64-NEXT: pushq %rax
529 ; WIN64-NEXT: fstpl (%rsp)
530 ; WIN64-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
531 ; WIN64-NEXT: popq %rax
532 ; WIN64-NEXT: retq
554 ; WIN64-LABEL: test_CallargRetf80:
555 ; WIN64: # %bb.0:
556 ; WIN64-NEXT: pushq %rsp
557 ; WIN64-NEXT: .seh_pushreg %rsp
558 ; WIN64-NEXT: .seh_endprologue
559 ; WIN64-NEXT: fadd %st, %st(0)
560 ; WIN64-NEXT: callq test_argRetf80
561 ; WIN64-NEXT: fadd %st, %st(0)
562 ; WIN64-NEXT: popq %rsp
563 ; WIN64-NEXT: retq
564 ; WIN64-NEXT: .seh_endproc
593 ; WIN64-LABEL: test_CallargParamf80:
594 ; WIN64: # %bb.0:
595 ; WIN64-NEXT: pushq %rsp
596 ; WIN64-NEXT: .seh_pushreg %rsp
597 ; WIN64-NEXT: .seh_endprologue
598 ; WIN64-NEXT: fadd %st, %st(0)
599 ; WIN64-NEXT: callq test_argParamf80
600 ; WIN64-NEXT: vaddsd %xmm0, %xmm0, %xmm0
601 ; WIN64-NEXT: popq %rsp
602 ; WIN64-NEXT: retq
603 ; WIN64-NEXT: .seh_endproc
629 ; WIN64-LABEL: test_argRetPointer:
630 ; WIN64: # %bb.0:
631 ; WIN64-NEXT: incl %eax
632 ; WIN64-NEXT: retq
655 ; WIN64-LABEL: test_CallargRetPointer:
656 ; WIN64: # %bb.0:
657 ; WIN64-NEXT: pushq %rsp
658 ; WIN64-NEXT: .seh_pushreg %rsp
659 ; WIN64-NEXT: .seh_endprologue
660 ; WIN64-NEXT: incl %eax
661 ; WIN64-NEXT: callq test_argRetPointer
662 ; WIN64-NEXT: incl %eax
663 ; WIN64-NEXT: popq %rsp
664 ; WIN64-NEXT: retq
665 ; WIN64-NEXT: .seh_endproc
697 ; WIN64-LABEL: test_argRet128Vector:
698 ; WIN64: # %bb.0:
699 ; WIN64-NEXT: vpslld $31, %xmm0, %xmm0
700 ; WIN64-NEXT: vpmovd2m %xmm0, %k1
701 ; WIN64-NEXT: vpblendmd %xmm1, %xmm2, %xmm0 {%k1}
702 ; WIN64-NEXT: retq
735 ; WIN64-LABEL: test_CallargRet128Vector:
736 ; WIN64: # %bb.0:
737 ; WIN64-NEXT: pushq %rsp
738 ; WIN64-NEXT: .seh_pushreg %rsp
739 ; WIN64-NEXT: subq $32, %rsp
740 ; WIN64-NEXT: .seh_stackalloc 32
741 ; WIN64-NEXT: vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
742 ; WIN64-NEXT: .seh_savexmm %xmm8, 16
743 ; WIN64-NEXT: .seh_endprologue
744 ; WIN64-NEXT: vmovdqa %xmm1, %xmm8
745 ; WIN64-NEXT: vpslld $31, %xmm0, %xmm1
746 ; WIN64-NEXT: vpmovd2m %xmm1, %k1
747 ; WIN64-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill
748 ; WIN64-NEXT: vmovdqa %xmm8, %xmm1
749 ; WIN64-NEXT: vmovdqa %xmm8, %xmm2
750 ; WIN64-NEXT: callq test_argRet128Vector
751 ; WIN64-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload
752 ; WIN64-NEXT: vmovdqa32 %xmm8, %xmm0 {%k1}
753 ; WIN64-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
754 ; WIN64-NEXT: addq $32, %rsp
755 ; WIN64-NEXT: popq %rsp
756 ; WIN64-NEXT: retq
757 ; WIN64-NEXT: .seh_endproc
796 ; WIN64-LABEL: test_argRet256Vector:
797 ; WIN64: # %bb.0:
798 ; WIN64-NEXT: kmovd %eax, %k1
799 ; WIN64-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
800 ; WIN64-NEXT: retq
829 ; WIN64-LABEL: test_CallargRet256Vector:
830 ; WIN64: # %bb.0:
831 ; WIN64-NEXT: pushq %rsp
832 ; WIN64-NEXT: .seh_pushreg %rsp
833 ; WIN64-NEXT: subq $80, %rsp
834 ; WIN64-NEXT: .seh_stackalloc 80
835 ; WIN64-NEXT: .seh_endprologue
836 ; WIN64-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
837 ; WIN64-NEXT: kmovd %eax, %k1
838 ; WIN64-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill
839 ; WIN64-NEXT: vmovdqa %ymm0, %ymm1
840 ; WIN64-NEXT: callq test_argRet256Vector
841 ; WIN64-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload
842 ; WIN64-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
843 ; WIN64-NEXT: vmovdqa32 %ymm1, %ymm0 {%k1}
844 ; WIN64-NEXT: addq $80, %rsp
845 ; WIN64-NEXT: popq %rsp
846 ; WIN64-NEXT: retq
847 ; WIN64-NEXT: .seh_endproc
882 ; WIN64-LABEL: test_argRet512Vector:
883 ; WIN64: # %bb.0:
884 ; WIN64-NEXT: kmovd %eax, %k1
885 ; WIN64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
886 ; WIN64-NEXT: retq
915 ; WIN64-LABEL: test_CallargRet512Vector:
916 ; WIN64: # %bb.0:
917 ; WIN64-NEXT: pushq %rsp
918 ; WIN64-NEXT: .seh_pushreg %rsp
919 ; WIN64-NEXT: subq $176, %rsp
920 ; WIN64-NEXT: .seh_stackalloc 176
921 ; WIN64-NEXT: .seh_endprologue
922 ; WIN64-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
923 ; WIN64-NEXT: kmovd %eax, %k1
924 ; WIN64-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill
925 ; WIN64-NEXT: vmovdqa64 %zmm0, %zmm1
926 ; WIN64-NEXT: callq test_argRet512Vector
927 ; WIN64-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload
928 ; WIN64-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
929 ; WIN64-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}
930 ; WIN64-NEXT: addq $176, %rsp
931 ; WIN64-NEXT: popq %rsp
932 ; WIN64-NEXT: retq
933 ; WIN64-NEXT: .seh_endproc
980 ; WIN64-LABEL: testf32_inp:
981 ; WIN64: # %bb.0:
982 ; WIN64-NEXT: vaddps %zmm2, %zmm0, %zmm6
983 ; WIN64-NEXT: vaddps %zmm3, %zmm1, %zmm7
984 ; WIN64-NEXT: vmulps %zmm2, %zmm0, %zmm0
985 ; WIN64-NEXT: vsubps %zmm0, %zmm6, %zmm0
986 ; WIN64-NEXT: vmulps %zmm3, %zmm1, %zmm1
987 ; WIN64-NEXT: vsubps %zmm1, %zmm7, %zmm1
988 ; WIN64-NEXT: vaddps %zmm4, %zmm0, %zmm0
989 ; WIN64-NEXT: vaddps %zmm5, %zmm1, %zmm1
990 ; WIN64-NEXT: retq
1063 ; WIN64-LABEL: testi32_inp:
1064 ; WIN64: # %bb.0:
1065 ; WIN64-NEXT: pushq %r13
1066 ; WIN64-NEXT: pushq %rbp
1067 ; WIN64-NEXT: pushq %rbx
1068 ; WIN64-NEXT: movl %eax, %r13d
1069 ; WIN64-NEXT: subl %ecx, %eax
1070 ; WIN64-NEXT: movl %edx, %ebp
1071 ; WIN64-NEXT: subl %edi, %ebp
1072 ; WIN64-NEXT: movl %r9d, %ebx
1073 ; WIN64-NEXT: subl %r10d, %ebx
1074 ; WIN64-NEXT: imull %ebx, %eax
1075 ; WIN64-NEXT: movl %r11d, %ebx
1076 ; WIN64-NEXT: subl %r12d, %ebx
1077 ; WIN64-NEXT: imull %ebp, %ebx
1078 ; WIN64-NEXT: movl %esi, %ebp
1079 ; WIN64-NEXT: subl %r8d, %ebp
1080 ; WIN64-NEXT: addl %ebx, %eax
1081 ; WIN64-NEXT: movl %r14d, %ebx
1082 ; WIN64-NEXT: subl %r15d, %ebx
1083 ; WIN64-NEXT: imull %ebp, %ebx
1084 ; WIN64-NEXT: addl %ebx, %eax
1085 ; WIN64-NEXT: addl %ecx, %r13d
1086 ; WIN64-NEXT: addl %edi, %edx
1087 ; WIN64-NEXT: addl %r8d, %esi
1088 ; WIN64-NEXT: addl %r10d, %r9d
1089 ; WIN64-NEXT: imull %r13d, %r9d
1090 ; WIN64-NEXT: addl %r12d, %r11d
1091 ; WIN64-NEXT: imull %edx, %r11d
1092 ; WIN64-NEXT: addl %r9d, %r11d
1093 ; WIN64-NEXT: addl %r15d, %r14d
1094 ; WIN64-NEXT: imull %esi, %r14d
1095 ; WIN64-NEXT: addl %r11d, %r14d
1096 ; WIN64-NEXT: addl %r14d, %eax
1097 ; WIN64-NEXT: popq %rbx
1098 ; WIN64-NEXT: popq %rbp
1099 ; WIN64-NEXT: popq %r13
1100 ; WIN64-NEXT: retq
1193 ; WIN64-LABEL: testf32_stack:
1194 ; WIN64: # %bb.0:
1195 ; WIN64-NEXT: pushq %rbp
1196 ; WIN64-NEXT: subq $48, %rsp
1197 ; WIN64-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
1198 ; WIN64-NEXT: andq $-64, %rsp
1199 ; WIN64-NEXT: vaddps %zmm3, %zmm1, %zmm1
1200 ; WIN64-NEXT: vaddps %zmm2, %zmm0, %zmm0
1201 ; WIN64-NEXT: vaddps %zmm0, %zmm4, %zmm0
1202 ; WIN64-NEXT: vaddps %zmm1, %zmm5, %zmm1
1203 ; WIN64-NEXT: vaddps %zmm1, %zmm7, %zmm1
1204 ; WIN64-NEXT: vaddps %zmm0, %zmm6, %zmm0
1205 ; WIN64-NEXT: vaddps %zmm0, %zmm8, %zmm0
1206 ; WIN64-NEXT: vaddps %zmm1, %zmm9, %zmm1
1207 ; WIN64-NEXT: vaddps %zmm1, %zmm11, %zmm1
1208 ; WIN64-NEXT: vaddps %zmm0, %zmm10, %zmm0
1209 ; WIN64-NEXT: vaddps %zmm0, %zmm12, %zmm0
1210 ; WIN64-NEXT: vaddps %zmm1, %zmm13, %zmm1
1211 ; WIN64-NEXT: vaddps %zmm1, %zmm15, %zmm1
1212 ; WIN64-NEXT: vaddps %zmm0, %zmm14, %zmm0
1213 ; WIN64-NEXT: vaddps 16(%rbp), %zmm0, %zmm0
1214 ; WIN64-NEXT: vaddps 80(%rbp), %zmm1, %zmm1
1215 ; WIN64-NEXT: movq %rbp, %rsp
1216 ; WIN64-NEXT: popq %rbp
1217 ; WIN64-NEXT: retq
1280 ; WIN64-LABEL: test_argRetMixTypes:
1281 ; WIN64: # %bb.0:
1282 ; WIN64-NEXT: vcvtss2sd %xmm1, %xmm1, %xmm1
1283 ; WIN64-NEXT: vaddsd %xmm0, %xmm1, %xmm0
1284 ; WIN64-NEXT: vcvtsi2sd %eax, %xmm2, %xmm1
1285 ; WIN64-NEXT: vaddsd %xmm1, %xmm0, %xmm0
1286 ; WIN64-NEXT: vcvtsi2sd %ecx, %xmm2, %xmm1
1287 ; WIN64-NEXT: vaddsd %xmm1, %xmm0, %xmm0
1288 ; WIN64-NEXT: vcvtsi2sd %rdx, %xmm2, %xmm1
1289 ; WIN64-NEXT: vaddsd %xmm1, %xmm0, %xmm0
1290 ; WIN64-NEXT: vcvtsi2sd %edi, %xmm2, %xmm1
1291 ; WIN64-NEXT: vaddsd %xmm1, %xmm0, %xmm0
1292 ; WIN64-NEXT: vcvtsi2sdl (%rsi), %xmm2, %xmm1
1293 ; WIN64-NEXT: vaddsd %xmm1, %xmm0, %xmm0
1294 ; WIN64-NEXT: vcvttsd2si %xmm0, %eax
1295 ; WIN64-NEXT: retq
1342 ; WIN64-LABEL: test_argMultiRet:
1343 ; WIN64: # %bb.0:
1344 ; WIN64-NEXT: vaddsd __real@{{.*}}(%rip), %xmm1, %xmm1
1345 ; WIN64-NEXT: movl $999, %edx # imm = 0x3E7
1346 ; WIN64-NEXT: movl $4, %eax
1347 ; WIN64-NEXT: movb $7, %cl
1348 ; WIN64-NEXT: retq