llvm.org GIT mirror llvm / 26256fb
MCStreamer: Use "cfi" for CFI related temp labels. Choosing a "cfi" name makes the intend a bit clearer in an assembly dump and more importantly the assembly dumps are slightly more stable as the numbers don't move around anymore when unrelated code calls createTempSymbol() more or less often. As they are temp labels the name doesn't influence the generated object code. Differential Revision: https://reviews.llvm.org/D27244 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288290 91177308-0d34-0410-b5e6-96231b3b80d8 Matthias Braun 4 years ago
44 changed file(s) with 419 addition(s) and 425 deletion(s). Raw diff Collapse all Expand all
168168 MCDwarfFrameInfo *getCurrentDwarfFrameInfo();
169169 void EnsureValidDwarfFrame();
170170
171 MCSymbol *EmitCFILabel();
171172 MCSymbol *EmitCFICommon();
172173
173174 std::vector WinFrameInfos;
340340 Frame.End = (MCSymbol *) 1;
341341 }
342342
343 MCSymbol *MCStreamer::EmitCFILabel() {
344 MCSymbol *Label = getContext().createTempSymbol("cfi", true);
345 EmitLabel(Label);
346 return Label;
347 }
348
343349 MCSymbol *MCStreamer::EmitCFICommon() {
344350 EnsureValidDwarfFrame();
345 MCSymbol *Label = getContext().createTempSymbol();
346 EmitLabel(Label);
347 return Label;
351 return EmitCFILabel();
348352 }
349353
350354 void MCStreamer::EmitCFIDefCfa(int64_t Register, int64_t Offset) {
503507 if (CurrentWinFrameInfo && !CurrentWinFrameInfo->End)
504508 report_fatal_error("Starting a function before ending the previous one!");
505509
506 MCSymbol *StartProc = getContext().createTempSymbol();
507 EmitLabel(StartProc);
510 MCSymbol *StartProc = EmitCFILabel();
508511
509512 WinFrameInfos.push_back(new WinEH::FrameInfo(Symbol, StartProc));
510513 CurrentWinFrameInfo = WinFrameInfos.back();
516519 if (CurrentWinFrameInfo->ChainedParent)
517520 report_fatal_error("Not all chained regions terminated!");
518521
519 MCSymbol *Label = getContext().createTempSymbol();
520 EmitLabel(Label);
522 MCSymbol *Label = EmitCFILabel();
521523 CurrentWinFrameInfo->End = Label;
522524 }
523525
524526 void MCStreamer::EmitWinCFIStartChained() {
525527 EnsureValidWinFrameInfo();
526528
527 MCSymbol *StartProc = getContext().createTempSymbol();
528 EmitLabel(StartProc);
529 MCSymbol *StartProc = EmitCFILabel();
529530
530531 WinFrameInfos.push_back(new WinEH::FrameInfo(CurrentWinFrameInfo->Function,
531532 StartProc, CurrentWinFrameInfo));
538539 if (!CurrentWinFrameInfo->ChainedParent)
539540 report_fatal_error("End of a chained region outside a chained region!");
540541
541 MCSymbol *Label = getContext().createTempSymbol();
542 EmitLabel(Label);
542 MCSymbol *Label = EmitCFILabel();
543543
544544 CurrentWinFrameInfo->End = Label;
545545 CurrentWinFrameInfo =
603603 void MCStreamer::EmitWinCFIPushReg(unsigned Register) {
604604 EnsureValidWinFrameInfo();
605605
606 MCSymbol *Label = getContext().createTempSymbol();
607 EmitLabel(Label);
606 MCSymbol *Label = EmitCFILabel();
608607
609608 WinEH::Instruction Inst = Win64EH::Instruction::PushNonVol(Label, Register);
610609 CurrentWinFrameInfo->Instructions.push_back(Inst);
619618 if (Offset > 240)
620619 report_fatal_error("Frame offset must be less than or equal to 240!");
621620
622 MCSymbol *Label = getContext().createTempSymbol();
623 EmitLabel(Label);
621 MCSymbol *Label = EmitCFILabel();
624622
625623 WinEH::Instruction Inst =
626624 Win64EH::Instruction::SetFPReg(Label, Register, Offset);
635633 if (Size & 7)
636634 report_fatal_error("Misaligned stack allocation!");
637635
638 MCSymbol *Label = getContext().createTempSymbol();
639 EmitLabel(Label);
636 MCSymbol *Label = EmitCFILabel();
640637
641638 WinEH::Instruction Inst = Win64EH::Instruction::Alloc(Label, Size);
642639 CurrentWinFrameInfo->Instructions.push_back(Inst);
647644 if (Offset & 7)
648645 report_fatal_error("Misaligned saved register offset!");
649646
650 MCSymbol *Label = getContext().createTempSymbol();
651 EmitLabel(Label);
647 MCSymbol *Label = EmitCFILabel();
652648
653649 WinEH::Instruction Inst =
654650 Win64EH::Instruction::SaveNonVol(Label, Register, Offset);
660656 if (Offset & 0x0F)
661657 report_fatal_error("Misaligned saved vector register offset!");
662658
663 MCSymbol *Label = getContext().createTempSymbol();
664 EmitLabel(Label);
659 MCSymbol *Label = EmitCFILabel();
665660
666661 WinEH::Instruction Inst =
667662 Win64EH::Instruction::SaveXMM(Label, Register, Offset);
673668 if (CurrentWinFrameInfo->Instructions.size() > 0)
674669 report_fatal_error("If present, PushMachFrame must be the first UOP");
675670
676 MCSymbol *Label = getContext().createTempSymbol();
677 EmitLabel(Label);
671 MCSymbol *Label = EmitCFILabel();
678672
679673 WinEH::Instruction Inst = Win64EH::Instruction::PushMachFrame(Label, Code);
680674 CurrentWinFrameInfo->Instructions.push_back(Inst);
683677 void MCStreamer::EmitWinCFIEndProlog() {
684678 EnsureValidWinFrameInfo();
685679
686 MCSymbol *Label = getContext().createTempSymbol();
687 EmitLabel(Label);
680 MCSymbol *Label = EmitCFILabel();
688681
689682 CurrentWinFrameInfo->PrologEnd = Label;
690683 }
1212 define void @jscall_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
1313 entry:
1414 ; CHECK-LABEL: jscall_patchpoint_codegen:
15 ; CHECK: Ltmp
15 ; CHECK: Lcfi
1616 ; CHECK: str x{{.+}}, [sp]
1717 ; CHECK-NEXT: mov x0, x{{.+}}
1818 ; CHECK: Ltmp
2121 ; CHECK: movk x16, #48879
2222 ; CHECK-NEXT: blr x16
2323 ; FAST-LABEL: jscall_patchpoint_codegen:
24 ; FAST: Ltmp
24 ; FAST: Lcfi
2525 ; FAST: str x{{.+}}, [sp]
2626 ; FAST: Ltmp
2727 ; FAST-NEXT: mov x16, #281470681743360
3939 define i64 @jscall_patchpoint_codegen2(i64 %callee) {
4040 entry:
4141 ; CHECK-LABEL: jscall_patchpoint_codegen2:
42 ; CHECK: Ltmp
42 ; CHECK: Lcfi
4343 ; CHECK: orr w[[REG:[0-9]+]], wzr, #0x6
4444 ; CHECK-NEXT: str x[[REG]], [sp, #24]
4545 ; CHECK-NEXT: orr w[[REG:[0-9]+]], wzr, #0x4
5252 ; CHECK-NEXT: movk x16, #48879
5353 ; CHECK-NEXT: blr x16
5454 ; FAST-LABEL: jscall_patchpoint_codegen2:
55 ; FAST: Ltmp
55 ; FAST: Lcfi
5656 ; FAST: orr [[REG1:x[0-9]+]], xzr, #0x2
5757 ; FAST-NEXT: orr [[REG2:w[0-9]+]], wzr, #0x4
5858 ; FAST-NEXT: orr [[REG3:x[0-9]+]], xzr, #0x6
7373 define i64 @jscall_patchpoint_codegen3(i64 %callee) {
7474 entry:
7575 ; CHECK-LABEL: jscall_patchpoint_codegen3:
76 ; CHECK: Ltmp
76 ; CHECK: Lcfi
7777 ; CHECK: mov w[[REG:[0-9]+]], #10
7878 ; CHECK-NEXT: str x[[REG]], [sp, #48]
7979 ; CHECK-NEXT: orr w[[REG:[0-9]+]], wzr, #0x8
9090 ; CHECK-NEXT: movk x16, #48879
9191 ; CHECK-NEXT: blr x16
9292 ; FAST-LABEL: jscall_patchpoint_codegen3:
93 ; FAST: Ltmp
93 ; FAST: Lcfi
9494 ; FAST: orr [[REG1:x[0-9]+]], xzr, #0x2
9595 ; FAST-NEXT: orr [[REG2:w[0-9]+]], wzr, #0x4
9696 ; FAST-NEXT: orr [[REG3:x[0-9]+]], xzr, #0x6
257257 ; SSE2-LABEL: avg_v64i8:
258258 ; SSE2: # BB#0:
259259 ; SSE2-NEXT: subq $152, %rsp
260 ; SSE2-NEXT: .Ltmp0:
260 ; SSE2-NEXT: .Lcfi0:
261261 ; SSE2-NEXT: .cfi_def_cfa_offset 160
262262 ; SSE2-NEXT: movdqa (%rdi), %xmm1
263263 ; SSE2-NEXT: movdqa 16(%rdi), %xmm2
11071107 ; X32-AVX2-LABEL: isel_crash_16b:
11081108 ; X32-AVX2: ## BB#0: ## %eintry
11091109 ; X32-AVX2-NEXT: subl $60, %esp
1110 ; X32-AVX2-NEXT: Ltmp0:
1110 ; X32-AVX2-NEXT: Lcfi0:
11111111 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 64
11121112 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
11131113 ; X32-AVX2-NEXT: vxorps %xmm0, %xmm0, %xmm0
11321132 ; X32-AVX512VL-LABEL: isel_crash_16b:
11331133 ; X32-AVX512VL: ## BB#0: ## %eintry
11341134 ; X32-AVX512VL-NEXT: subl $60, %esp
1135 ; X32-AVX512VL-NEXT: Ltmp0:
1135 ; X32-AVX512VL-NEXT: Lcfi0:
11361136 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 64
11371137 ; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax
11381138 ; X32-AVX512VL-NEXT: vxorps %xmm0, %xmm0, %xmm0
11721172 ; X32-AVX2-LABEL: isel_crash_32b:
11731173 ; X32-AVX2: ## BB#0: ## %eintry
11741174 ; X32-AVX2-NEXT: pushl %ebp
1175 ; X32-AVX2-NEXT: Ltmp1:
1175 ; X32-AVX2-NEXT: Lcfi1:
11761176 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 8
1177 ; X32-AVX2-NEXT: Ltmp2:
1177 ; X32-AVX2-NEXT: Lcfi2:
11781178 ; X32-AVX2-NEXT: .cfi_offset %ebp, -8
11791179 ; X32-AVX2-NEXT: movl %esp, %ebp
1180 ; X32-AVX2-NEXT: Ltmp3:
1180 ; X32-AVX2-NEXT: Lcfi3:
11811181 ; X32-AVX2-NEXT: .cfi_def_cfa_register %ebp
11821182 ; X32-AVX2-NEXT: andl $-32, %esp
11831183 ; X32-AVX2-NEXT: subl $128, %esp
11951195 ; X64-AVX2-LABEL: isel_crash_32b:
11961196 ; X64-AVX2: ## BB#0: ## %eintry
11971197 ; X64-AVX2-NEXT: pushq %rbp
1198 ; X64-AVX2-NEXT: Ltmp0:
1198 ; X64-AVX2-NEXT: Lcfi0:
11991199 ; X64-AVX2-NEXT: .cfi_def_cfa_offset 16
1200 ; X64-AVX2-NEXT: Ltmp1:
1200 ; X64-AVX2-NEXT: Lcfi1:
12011201 ; X64-AVX2-NEXT: .cfi_offset %rbp, -16
12021202 ; X64-AVX2-NEXT: movq %rsp, %rbp
1203 ; X64-AVX2-NEXT: Ltmp2:
1203 ; X64-AVX2-NEXT: Lcfi2:
12041204 ; X64-AVX2-NEXT: .cfi_def_cfa_register %rbp
12051205 ; X64-AVX2-NEXT: andq $-32, %rsp
12061206 ; X64-AVX2-NEXT: subq $128, %rsp
12191219 ; X32-AVX512VL-LABEL: isel_crash_32b:
12201220 ; X32-AVX512VL: ## BB#0: ## %eintry
12211221 ; X32-AVX512VL-NEXT: pushl %ebp
1222 ; X32-AVX512VL-NEXT: Ltmp1:
1222 ; X32-AVX512VL-NEXT: Lcfi1:
12231223 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 8
1224 ; X32-AVX512VL-NEXT: Ltmp2:
1224 ; X32-AVX512VL-NEXT: Lcfi2:
12251225 ; X32-AVX512VL-NEXT: .cfi_offset %ebp, -8
12261226 ; X32-AVX512VL-NEXT: movl %esp, %ebp
1227 ; X32-AVX512VL-NEXT: Ltmp3:
1227 ; X32-AVX512VL-NEXT: Lcfi3:
12281228 ; X32-AVX512VL-NEXT: .cfi_def_cfa_register %ebp
12291229 ; X32-AVX512VL-NEXT: andl $-32, %esp
12301230 ; X32-AVX512VL-NEXT: subl $128, %esp
12411241 ; X64-AVX512VL-LABEL: isel_crash_32b:
12421242 ; X64-AVX512VL: ## BB#0: ## %eintry
12431243 ; X64-AVX512VL-NEXT: pushq %rbp
1244 ; X64-AVX512VL-NEXT: Ltmp0:
1244 ; X64-AVX512VL-NEXT: Lcfi0:
12451245 ; X64-AVX512VL-NEXT: .cfi_def_cfa_offset 16
1246 ; X64-AVX512VL-NEXT: Ltmp1:
1246 ; X64-AVX512VL-NEXT: Lcfi1:
12471247 ; X64-AVX512VL-NEXT: .cfi_offset %rbp, -16
12481248 ; X64-AVX512VL-NEXT: movq %rsp, %rbp
1249 ; X64-AVX512VL-NEXT: Ltmp2:
1249 ; X64-AVX512VL-NEXT: Lcfi2:
12501250 ; X64-AVX512VL-NEXT: .cfi_def_cfa_register %rbp
12511251 ; X64-AVX512VL-NEXT: andq $-32, %rsp
12521252 ; X64-AVX512VL-NEXT: subq $128, %rsp
12791279 ; X32-AVX2-LABEL: isel_crash_8w:
12801280 ; X32-AVX2: ## BB#0: ## %entry
12811281 ; X32-AVX2-NEXT: subl $60, %esp
1282 ; X32-AVX2-NEXT: Ltmp4:
1282 ; X32-AVX2-NEXT: Lcfi4:
12831283 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 64
12841284 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
12851285 ; X32-AVX2-NEXT: vxorps %xmm0, %xmm0, %xmm0
13041304 ; X32-AVX512VL-LABEL: isel_crash_8w:
13051305 ; X32-AVX512VL: ## BB#0: ## %entry
13061306 ; X32-AVX512VL-NEXT: subl $60, %esp
1307 ; X32-AVX512VL-NEXT: Ltmp4:
1307 ; X32-AVX512VL-NEXT: Lcfi4:
13081308 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 64
13091309 ; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax
13101310 ; X32-AVX512VL-NEXT: vxorps %xmm0, %xmm0, %xmm0
13441344 ; X32-AVX2-LABEL: isel_crash_16w:
13451345 ; X32-AVX2: ## BB#0: ## %eintry
13461346 ; X32-AVX2-NEXT: pushl %ebp
1347 ; X32-AVX2-NEXT: Ltmp5:
1347 ; X32-AVX2-NEXT: Lcfi5:
13481348 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 8
1349 ; X32-AVX2-NEXT: Ltmp6:
1349 ; X32-AVX2-NEXT: Lcfi6:
13501350 ; X32-AVX2-NEXT: .cfi_offset %ebp, -8
13511351 ; X32-AVX2-NEXT: movl %esp, %ebp
1352 ; X32-AVX2-NEXT: Ltmp7:
1352 ; X32-AVX2-NEXT: Lcfi7:
13531353 ; X32-AVX2-NEXT: .cfi_def_cfa_register %ebp
13541354 ; X32-AVX2-NEXT: andl $-32, %esp
13551355 ; X32-AVX2-NEXT: subl $128, %esp
13671367 ; X64-AVX2-LABEL: isel_crash_16w:
13681368 ; X64-AVX2: ## BB#0: ## %eintry
13691369 ; X64-AVX2-NEXT: pushq %rbp
1370 ; X64-AVX2-NEXT: Ltmp3:
1370 ; X64-AVX2-NEXT: Lcfi3:
13711371 ; X64-AVX2-NEXT: .cfi_def_cfa_offset 16
1372 ; X64-AVX2-NEXT: Ltmp4:
1372 ; X64-AVX2-NEXT: Lcfi4:
13731373 ; X64-AVX2-NEXT: .cfi_offset %rbp, -16
13741374 ; X64-AVX2-NEXT: movq %rsp, %rbp
1375 ; X64-AVX2-NEXT: Ltmp5:
1375 ; X64-AVX2-NEXT: Lcfi5:
13761376 ; X64-AVX2-NEXT: .cfi_def_cfa_register %rbp
13771377 ; X64-AVX2-NEXT: andq $-32, %rsp
13781378 ; X64-AVX2-NEXT: subq $128, %rsp
13911391 ; X32-AVX512VL-LABEL: isel_crash_16w:
13921392 ; X32-AVX512VL: ## BB#0: ## %eintry
13931393 ; X32-AVX512VL-NEXT: pushl %ebp
1394 ; X32-AVX512VL-NEXT: Ltmp5:
1394 ; X32-AVX512VL-NEXT: Lcfi5:
13951395 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 8
1396 ; X32-AVX512VL-NEXT: Ltmp6:
1396 ; X32-AVX512VL-NEXT: Lcfi6:
13971397 ; X32-AVX512VL-NEXT: .cfi_offset %ebp, -8
13981398 ; X32-AVX512VL-NEXT: movl %esp, %ebp
1399 ; X32-AVX512VL-NEXT: Ltmp7:
1399 ; X32-AVX512VL-NEXT: Lcfi7:
14001400 ; X32-AVX512VL-NEXT: .cfi_def_cfa_register %ebp
14011401 ; X32-AVX512VL-NEXT: andl $-32, %esp
14021402 ; X32-AVX512VL-NEXT: subl $128, %esp
14131413 ; X64-AVX512VL-LABEL: isel_crash_16w:
14141414 ; X64-AVX512VL: ## BB#0: ## %eintry
14151415 ; X64-AVX512VL-NEXT: pushq %rbp
1416 ; X64-AVX512VL-NEXT: Ltmp3:
1416 ; X64-AVX512VL-NEXT: Lcfi3:
14171417 ; X64-AVX512VL-NEXT: .cfi_def_cfa_offset 16
1418 ; X64-AVX512VL-NEXT: Ltmp4:
1418 ; X64-AVX512VL-NEXT: Lcfi4:
14191419 ; X64-AVX512VL-NEXT: .cfi_offset %rbp, -16
14201420 ; X64-AVX512VL-NEXT: movq %rsp, %rbp
1421 ; X64-AVX512VL-NEXT: Ltmp5:
1421 ; X64-AVX512VL-NEXT: Lcfi5:
14221422 ; X64-AVX512VL-NEXT: .cfi_def_cfa_register %rbp
14231423 ; X64-AVX512VL-NEXT: andq $-32, %rsp
14241424 ; X64-AVX512VL-NEXT: subq $128, %rsp
14511451 ; X32-LABEL: isel_crash_4d:
14521452 ; X32: ## BB#0: ## %entry
14531453 ; X32-NEXT: subl $60, %esp
1454 ; X32-NEXT: Ltmp8:
1454 ; X32-NEXT: Lcfi8:
14551455 ; X32-NEXT: .cfi_def_cfa_offset 64
14561456 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
14571457 ; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0
15011501 ; X32-AVX2-LABEL: isel_crash_8d:
15021502 ; X32-AVX2: ## BB#0: ## %eintry
15031503 ; X32-AVX2-NEXT: pushl %ebp
1504 ; X32-AVX2-NEXT: Ltmp9:
1504 ; X32-AVX2-NEXT: Lcfi9:
15051505 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 8
1506 ; X32-AVX2-NEXT: Ltmp10:
1506 ; X32-AVX2-NEXT: Lcfi10:
15071507 ; X32-AVX2-NEXT: .cfi_offset %ebp, -8
15081508 ; X32-AVX2-NEXT: movl %esp, %ebp
1509 ; X32-AVX2-NEXT: Ltmp11:
1509 ; X32-AVX2-NEXT: Lcfi11:
15101510 ; X32-AVX2-NEXT: .cfi_def_cfa_register %ebp
15111511 ; X32-AVX2-NEXT: andl $-32, %esp
15121512 ; X32-AVX2-NEXT: subl $128, %esp
15241524 ; X64-AVX2-LABEL: isel_crash_8d:
15251525 ; X64-AVX2: ## BB#0: ## %eintry
15261526 ; X64-AVX2-NEXT: pushq %rbp
1527 ; X64-AVX2-NEXT: Ltmp6:
1527 ; X64-AVX2-NEXT: Lcfi6:
15281528 ; X64-AVX2-NEXT: .cfi_def_cfa_offset 16
1529 ; X64-AVX2-NEXT: Ltmp7:
1529 ; X64-AVX2-NEXT: Lcfi7:
15301530 ; X64-AVX2-NEXT: .cfi_offset %rbp, -16
15311531 ; X64-AVX2-NEXT: movq %rsp, %rbp
1532 ; X64-AVX2-NEXT: Ltmp8:
1532 ; X64-AVX2-NEXT: Lcfi8:
15331533 ; X64-AVX2-NEXT: .cfi_def_cfa_register %rbp
15341534 ; X64-AVX2-NEXT: andq $-32, %rsp
15351535 ; X64-AVX2-NEXT: subq $128, %rsp
15481548 ; X32-AVX512VL-LABEL: isel_crash_8d:
15491549 ; X32-AVX512VL: ## BB#0: ## %eintry
15501550 ; X32-AVX512VL-NEXT: pushl %ebp
1551 ; X32-AVX512VL-NEXT: Ltmp9:
1551 ; X32-AVX512VL-NEXT: Lcfi9:
15521552 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 8
1553 ; X32-AVX512VL-NEXT: Ltmp10:
1553 ; X32-AVX512VL-NEXT: Lcfi10:
15541554 ; X32-AVX512VL-NEXT: .cfi_offset %ebp, -8
15551555 ; X32-AVX512VL-NEXT: movl %esp, %ebp
1556 ; X32-AVX512VL-NEXT: Ltmp11:
1556 ; X32-AVX512VL-NEXT: Lcfi11:
15571557 ; X32-AVX512VL-NEXT: .cfi_def_cfa_register %ebp
15581558 ; X32-AVX512VL-NEXT: andl $-32, %esp
15591559 ; X32-AVX512VL-NEXT: subl $128, %esp
15701570 ; X64-AVX512VL-LABEL: isel_crash_8d:
15711571 ; X64-AVX512VL: ## BB#0: ## %eintry
15721572 ; X64-AVX512VL-NEXT: pushq %rbp
1573 ; X64-AVX512VL-NEXT: Ltmp6:
1573 ; X64-AVX512VL-NEXT: Lcfi6:
15741574 ; X64-AVX512VL-NEXT: .cfi_def_cfa_offset 16
1575 ; X64-AVX512VL-NEXT: Ltmp7:
1575 ; X64-AVX512VL-NEXT: Lcfi7:
15761576 ; X64-AVX512VL-NEXT: .cfi_offset %rbp, -16
15771577 ; X64-AVX512VL-NEXT: movq %rsp, %rbp
1578 ; X64-AVX512VL-NEXT: Ltmp8:
1578 ; X64-AVX512VL-NEXT: Lcfi8:
15791579 ; X64-AVX512VL-NEXT: .cfi_def_cfa_register %rbp
15801580 ; X64-AVX512VL-NEXT: andq $-32, %rsp
15811581 ; X64-AVX512VL-NEXT: subq $128, %rsp
16071607 ; X32-AVX2-LABEL: isel_crash_2q:
16081608 ; X32-AVX2: ## BB#0: ## %entry
16091609 ; X32-AVX2-NEXT: subl $60, %esp
1610 ; X32-AVX2-NEXT: Ltmp12:
1610 ; X32-AVX2-NEXT: Lcfi12:
16111611 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 64
16121612 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
16131613 ; X32-AVX2-NEXT: vxorps %xmm0, %xmm0, %xmm0
16371637 ; X32-AVX512VL-LABEL: isel_crash_2q:
16381638 ; X32-AVX512VL: ## BB#0: ## %entry
16391639 ; X32-AVX512VL-NEXT: subl $60, %esp
1640 ; X32-AVX512VL-NEXT: Ltmp12:
1640 ; X32-AVX512VL-NEXT: Lcfi12:
16411641 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 64
16421642 ; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax
16431643 ; X32-AVX512VL-NEXT: vxorps %xmm0, %xmm0, %xmm0
16801680 ; X32-AVX2-LABEL: isel_crash_4q:
16811681 ; X32-AVX2: ## BB#0: ## %eintry
16821682 ; X32-AVX2-NEXT: pushl %ebp
1683 ; X32-AVX2-NEXT: Ltmp13:
1683 ; X32-AVX2-NEXT: Lcfi13:
16841684 ; X32-AVX2-NEXT: .cfi_def_cfa_offset 8
1685 ; X32-AVX2-NEXT: Ltmp14:
1685 ; X32-AVX2-NEXT: Lcfi14:
16861686 ; X32-AVX2-NEXT: .cfi_offset %ebp, -8
16871687 ; X32-AVX2-NEXT: movl %esp, %ebp
1688 ; X32-AVX2-NEXT: Ltmp15:
1688 ; X32-AVX2-NEXT: Lcfi15:
16891689 ; X32-AVX2-NEXT: .cfi_def_cfa_register %ebp
16901690 ; X32-AVX2-NEXT: andl $-32, %esp
16911691 ; X32-AVX2-NEXT: subl $128, %esp
17091709 ; X64-AVX2-LABEL: isel_crash_4q:
17101710 ; X64-AVX2: ## BB#0: ## %eintry
17111711 ; X64-AVX2-NEXT: pushq %rbp
1712 ; X64-AVX2-NEXT: Ltmp9:
1712 ; X64-AVX2-NEXT: Lcfi9:
17131713 ; X64-AVX2-NEXT: .cfi_def_cfa_offset 16
1714 ; X64-AVX2-NEXT: Ltmp10:
1714 ; X64-AVX2-NEXT: Lcfi10:
17151715 ; X64-AVX2-NEXT: .cfi_offset %rbp, -16
17161716 ; X64-AVX2-NEXT: movq %rsp, %rbp
1717 ; X64-AVX2-NEXT: Ltmp11:
1717 ; X64-AVX2-NEXT: Lcfi11:
17181718 ; X64-AVX2-NEXT: .cfi_def_cfa_register %rbp
17191719 ; X64-AVX2-NEXT: andq $-32, %rsp
17201720 ; X64-AVX2-NEXT: subq $128, %rsp
17331733 ; X32-AVX512VL-LABEL: isel_crash_4q:
17341734 ; X32-AVX512VL: ## BB#0: ## %eintry
17351735 ; X32-AVX512VL-NEXT: pushl %ebp
1736 ; X32-AVX512VL-NEXT: Ltmp13:
1736 ; X32-AVX512VL-NEXT: Lcfi13:
17371737 ; X32-AVX512VL-NEXT: .cfi_def_cfa_offset 8
1738 ; X32-AVX512VL-NEXT: Ltmp14:
1738 ; X32-AVX512VL-NEXT: Lcfi14:
17391739 ; X32-AVX512VL-NEXT: .cfi_offset %ebp, -8
17401740 ; X32-AVX512VL-NEXT: movl %esp, %ebp
1741 ; X32-AVX512VL-NEXT: Ltmp15:
1741 ; X32-AVX512VL-NEXT: Lcfi15:
17421742 ; X32-AVX512VL-NEXT: .cfi_def_cfa_register %ebp
17431743 ; X32-AVX512VL-NEXT: andl $-32, %esp
17441744 ; X32-AVX512VL-NEXT: subl $128, %esp
17611761 ; X64-AVX512VL-LABEL: isel_crash_4q:
17621762 ; X64-AVX512VL: ## BB#0: ## %eintry
17631763 ; X64-AVX512VL-NEXT: pushq %rbp
1764 ; X64-AVX512VL-NEXT: Ltmp9:
1764 ; X64-AVX512VL-NEXT: Lcfi9:
17651765 ; X64-AVX512VL-NEXT: .cfi_def_cfa_offset 16
1766 ; X64-AVX512VL-NEXT: Ltmp10:
1766 ; X64-AVX512VL-NEXT: Lcfi10:
17671767 ; X64-AVX512VL-NEXT: .cfi_offset %rbp, -16
17681768 ; X64-AVX512VL-NEXT: movq %rsp, %rbp
1769 ; X64-AVX512VL-NEXT: Ltmp11:
1769 ; X64-AVX512VL-NEXT: Lcfi11:
17701770 ; X64-AVX512VL-NEXT: .cfi_def_cfa_register %rbp
17711771 ; X64-AVX512VL-NEXT: andq $-32, %rsp
17721772 ; X64-AVX512VL-NEXT: subq $128, %rsp
124124 ; KNL-LABEL: test5:
125125 ; KNL: ## BB#0:
126126 ; KNL-NEXT: pushq %rax
127 ; KNL-NEXT: Ltmp0:
127 ; KNL-NEXT: Lcfi0:
128128 ; KNL-NEXT: .cfi_def_cfa_offset 16
129129 ; KNL-NEXT: vpcmpgtd %ymm1, %ymm0, %ymm0
130130 ; KNL-NEXT: vpmovdw %zmm0, %ymm0
139139 ; SKX-LABEL: test5:
140140 ; SKX: ## BB#0:
141141 ; SKX-NEXT: pushq %rax
142 ; SKX-NEXT: Ltmp0:
142 ; SKX-NEXT: Lcfi0:
143143 ; SKX-NEXT: .cfi_def_cfa_offset 16
144144 ; SKX-NEXT: vpcmpgtd %ymm1, %ymm0, %k0
145145 ; SKX-NEXT: vpmovm2w %k0, %xmm0
153153 ; KNL_X32-LABEL: test5:
154154 ; KNL_X32: ## BB#0:
155155 ; KNL_X32-NEXT: subl $12, %esp
156 ; KNL_X32-NEXT: Ltmp0:
156 ; KNL_X32-NEXT: Lcfi0:
157157 ; KNL_X32-NEXT: .cfi_def_cfa_offset 16
158158 ; KNL_X32-NEXT: vpcmpgtd %ymm1, %ymm0, %ymm0
159159 ; KNL_X32-NEXT: vpmovdw %zmm0, %ymm0
176176 ; KNL-LABEL: test6:
177177 ; KNL: ## BB#0:
178178 ; KNL-NEXT: pushq %rax
179 ; KNL-NEXT: Ltmp1:
179 ; KNL-NEXT: Lcfi1:
180180 ; KNL-NEXT: .cfi_def_cfa_offset 16
181181 ; KNL-NEXT: vpcmpgtd %zmm1, %zmm0, %k1
182182 ; KNL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0
192192 ; SKX-LABEL: test6:
193193 ; SKX: ## BB#0:
194194 ; SKX-NEXT: pushq %rax
195 ; SKX-NEXT: Ltmp1:
195 ; SKX-NEXT: Lcfi1:
196196 ; SKX-NEXT: .cfi_def_cfa_offset 16
197197 ; SKX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
198198 ; SKX-NEXT: vpmovm2b %k0, %xmm0
206206 ; KNL_X32-LABEL: test6:
207207 ; KNL_X32: ## BB#0:
208208 ; KNL_X32-NEXT: subl $12, %esp
209 ; KNL_X32-NEXT: Ltmp1:
209 ; KNL_X32-NEXT: Lcfi1:
210210 ; KNL_X32-NEXT: .cfi_def_cfa_offset 16
211211 ; KNL_X32-NEXT: vpcmpgtd %zmm1, %zmm0, %k1
212212 ; KNL_X32-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0
230230 ; KNL-LABEL: test7:
231231 ; KNL: ## BB#0:
232232 ; KNL-NEXT: pushq %rax
233 ; KNL-NEXT: Ltmp2:
233 ; KNL-NEXT: Lcfi2:
234234 ; KNL-NEXT: .cfi_def_cfa_offset 16
235235 ; KNL-NEXT: vpcmpgtd %xmm1, %xmm0, %xmm0
236236 ; KNL-NEXT: callq _func4xi1
242242 ; SKX-LABEL: test7:
243243 ; SKX: ## BB#0:
244244 ; SKX-NEXT: pushq %rax
245 ; SKX-NEXT: Ltmp2:
245 ; SKX-NEXT: Lcfi2:
246246 ; SKX-NEXT: .cfi_def_cfa_offset 16
247247 ; SKX-NEXT: vpcmpgtd %xmm1, %xmm0, %k0
248248 ; SKX-NEXT: vpmovm2d %k0, %xmm0
255255 ; KNL_X32-LABEL: test7:
256256 ; KNL_X32: ## BB#0:
257257 ; KNL_X32-NEXT: subl $12, %esp
258 ; KNL_X32-NEXT: Ltmp2:
258 ; KNL_X32-NEXT: Lcfi2:
259259 ; KNL_X32-NEXT: .cfi_def_cfa_offset 16
260260 ; KNL_X32-NEXT: vpcmpgtd %xmm1, %xmm0, %xmm0
261261 ; KNL_X32-NEXT: calll _func4xi1
273273 ; KNL-LABEL: test7a:
274274 ; KNL: ## BB#0:
275275 ; KNL-NEXT: pushq %rax
276 ; KNL-NEXT: Ltmp3:
276 ; KNL-NEXT: Lcfi3:
277277 ; KNL-NEXT: .cfi_def_cfa_offset 16
278278 ; KNL-NEXT: vpcmpgtd %ymm1, %ymm0, %ymm0
279279 ; KNL-NEXT: vpmovdw %zmm0, %ymm0
293293 ; SKX-LABEL: test7a:
294294 ; SKX: ## BB#0:
295295 ; SKX-NEXT: pushq %rax
296 ; SKX-NEXT: Ltmp3:
296 ; SKX-NEXT: Lcfi3:
297297 ; SKX-NEXT: .cfi_def_cfa_offset 16
298298 ; SKX-NEXT: vpcmpgtd %ymm1, %ymm0, %k0
299299 ; SKX-NEXT: vpmovm2w %k0, %xmm0
310310 ; KNL_X32-LABEL: test7a:
311311 ; KNL_X32: ## BB#0:
312312 ; KNL_X32-NEXT: subl $12, %esp
313 ; KNL_X32-NEXT: Ltmp3:
313 ; KNL_X32-NEXT: Lcfi3:
314314 ; KNL_X32-NEXT: .cfi_def_cfa_offset 16
315315 ; KNL_X32-NEXT: vpcmpgtd %ymm1, %ymm0, %ymm0
316316 ; KNL_X32-NEXT: vpmovdw %zmm0, %ymm0
412412 ; ALL_X64-LABEL: test12:
413413 ; ALL_X64: ## BB#0:
414414 ; ALL_X64-NEXT: pushq %rbp
415 ; ALL_X64-NEXT: Ltmp4:
415 ; ALL_X64-NEXT: Lcfi4:
416416 ; ALL_X64-NEXT: .cfi_def_cfa_offset 16
417417 ; ALL_X64-NEXT: pushq %r14
418 ; ALL_X64-NEXT: Ltmp5:
418 ; ALL_X64-NEXT: Lcfi5:
419419 ; ALL_X64-NEXT: .cfi_def_cfa_offset 24
420420 ; ALL_X64-NEXT: pushq %rbx
421 ; ALL_X64-NEXT: Ltmp6:
421 ; ALL_X64-NEXT: Lcfi6:
422422 ; ALL_X64-NEXT: .cfi_def_cfa_offset 32
423 ; ALL_X64-NEXT: Ltmp7:
423 ; ALL_X64-NEXT: Lcfi7:
424424 ; ALL_X64-NEXT: .cfi_offset %rbx, -32
425 ; ALL_X64-NEXT: Ltmp8:
425 ; ALL_X64-NEXT: Lcfi8:
426426 ; ALL_X64-NEXT: .cfi_offset %r14, -24
427 ; ALL_X64-NEXT: Ltmp9:
427 ; ALL_X64-NEXT: Lcfi9:
428428 ; ALL_X64-NEXT: .cfi_offset %rbp, -16
429429 ; ALL_X64-NEXT: movl %esi, %r14d
430430 ; ALL_X64-NEXT: movl %edi, %ebp
446446 ; KNL_X32-LABEL: test12:
447447 ; KNL_X32: ## BB#0:
448448 ; KNL_X32-NEXT: pushl %ebx
449 ; KNL_X32-NEXT: Ltmp4:
449 ; KNL_X32-NEXT: Lcfi4:
450450 ; KNL_X32-NEXT: .cfi_def_cfa_offset 8
451451 ; KNL_X32-NEXT: pushl %edi
452 ; KNL_X32-NEXT: Ltmp5:
452 ; KNL_X32-NEXT: Lcfi5:
453453 ; KNL_X32-NEXT: .cfi_def_cfa_offset 12
454454 ; KNL_X32-NEXT: pushl %esi
455 ; KNL_X32-NEXT: Ltmp6:
455 ; KNL_X32-NEXT: Lcfi6:
456456 ; KNL_X32-NEXT: .cfi_def_cfa_offset 16
457457 ; KNL_X32-NEXT: subl $16, %esp
458 ; KNL_X32-NEXT: Ltmp7:
458 ; KNL_X32-NEXT: Lcfi7:
459459 ; KNL_X32-NEXT: .cfi_def_cfa_offset 32
460 ; KNL_X32-NEXT: Ltmp8:
460 ; KNL_X32-NEXT: Lcfi8:
461461 ; KNL_X32-NEXT: .cfi_offset %esi, -16
462 ; KNL_X32-NEXT: Ltmp9:
462 ; KNL_X32-NEXT: Lcfi9:
463463 ; KNL_X32-NEXT: .cfi_offset %edi, -12
464 ; KNL_X32-NEXT: Ltmp10:
464 ; KNL_X32-NEXT: Lcfi10:
465465 ; KNL_X32-NEXT: .cfi_offset %ebx, -8
466466 ; KNL_X32-NEXT: movl {{[0-9]+}}(%esp), %esi
467467 ; KNL_X32-NEXT: movl {{[0-9]+}}(%esp), %edi
77 ; CHECK-LABEL: test:
88 ; CHECK: ## BB#0:
99 ; CHECK-NEXT: pushq %rax
10 ; CHECK-NEXT: Ltmp0:
10 ; CHECK-NEXT: Lcfi0:
1111 ; CHECK-NEXT: .cfi_def_cfa_offset 16
1212 ; CHECK-NEXT: movb $1, %al
1313 ; CHECK-NEXT: vucomiss %xmm1, %xmm0
10431043 ; KNL-LABEL: test_insertelement_v32i1:
10441044 ; KNL: ## BB#0:
10451045 ; KNL-NEXT: pushq %rbp
1046 ; KNL-NEXT: Ltmp0:
1046 ; KNL-NEXT: Lcfi0:
10471047 ; KNL-NEXT: .cfi_def_cfa_offset 16
1048 ; KNL-NEXT: Ltmp1:
1048 ; KNL-NEXT: Lcfi1:
10491049 ; KNL-NEXT: .cfi_offset %rbp, -16
10501050 ; KNL-NEXT: movq %rsp, %rbp
1051 ; KNL-NEXT: Ltmp2:
1051 ; KNL-NEXT: Lcfi2:
10521052 ; KNL-NEXT: .cfi_def_cfa_register %rbp
10531053 ; KNL-NEXT: andq $-32, %rsp
10541054 ; KNL-NEXT: subq $32, %rsp
497497 ; KNL-LABEL: test16:
498498 ; KNL: ## BB#0:
499499 ; KNL-NEXT: pushq %rbp
500 ; KNL-NEXT: Ltmp0:
500 ; KNL-NEXT: Lcfi0:
501501 ; KNL-NEXT: .cfi_def_cfa_offset 16
502 ; KNL-NEXT: Ltmp1:
502 ; KNL-NEXT: Lcfi1:
503503 ; KNL-NEXT: .cfi_offset %rbp, -16
504504 ; KNL-NEXT: movq %rsp, %rbp
505 ; KNL-NEXT: Ltmp2:
505 ; KNL-NEXT: Lcfi2:
506506 ; KNL-NEXT: .cfi_def_cfa_register %rbp
507507 ; KNL-NEXT: andq $-32, %rsp
508508 ; KNL-NEXT: subq $64, %rsp
561561 ; KNL-LABEL: test17:
562562 ; KNL: ## BB#0:
563563 ; KNL-NEXT: pushq %rbp
564 ; KNL-NEXT: Ltmp3:
564 ; KNL-NEXT: Lcfi3:
565565 ; KNL-NEXT: .cfi_def_cfa_offset 16
566 ; KNL-NEXT: Ltmp4:
566 ; KNL-NEXT: Lcfi4:
567567 ; KNL-NEXT: .cfi_offset %rbp, -16
568568 ; KNL-NEXT: movq %rsp, %rbp
569 ; KNL-NEXT: Ltmp5:
569 ; KNL-NEXT: Lcfi5:
570570 ; KNL-NEXT: .cfi_def_cfa_register %rbp
571571 ; KNL-NEXT: andq $-32, %rsp
572572 ; KNL-NEXT: subq $64, %rsp
10321032 ; KNL-LABEL: ktest_2:
10331033 ; KNL: ## BB#0:
10341034 ; KNL-NEXT: pushq %rbp
1035 ; KNL-NEXT: Ltmp6:
1035 ; KNL-NEXT: Lcfi6:
10361036 ; KNL-NEXT: .cfi_def_cfa_offset 16
1037 ; KNL-NEXT: Ltmp7:
1037 ; KNL-NEXT: Lcfi7:
10381038 ; KNL-NEXT: .cfi_offset %rbp, -16
10391039 ; KNL-NEXT: movq %rsp, %rbp
1040 ; KNL-NEXT: Ltmp8:
1040 ; KNL-NEXT: Lcfi8:
10411041 ; KNL-NEXT: .cfi_def_cfa_register %rbp
10421042 ; KNL-NEXT: andq $-32, %rsp
10431043 ; KNL-NEXT: subq $32, %rsp
16291629 ; KNL-LABEL: store_64i1:
16301630 ; KNL: ## BB#0:
16311631 ; KNL-NEXT: pushq %rbp
1632 ; KNL-NEXT: Ltmp9:
1632 ; KNL-NEXT: Lcfi9:
16331633 ; KNL-NEXT: .cfi_def_cfa_offset 16
16341634 ; KNL-NEXT: pushq %r15
1635 ; KNL-NEXT: Ltmp10:
1635 ; KNL-NEXT: Lcfi10:
16361636 ; KNL-NEXT: .cfi_def_cfa_offset 24
16371637 ; KNL-NEXT: pushq %r14
1638 ; KNL-NEXT: Ltmp11:
1638 ; KNL-NEXT: Lcfi11:
16391639 ; KNL-NEXT: .cfi_def_cfa_offset 32
16401640 ; KNL-NEXT: pushq %r13
1641 ; KNL-NEXT: Ltmp12:
1641 ; KNL-NEXT: Lcfi12:
16421642 ; KNL-NEXT: .cfi_def_cfa_offset 40
16431643 ; KNL-NEXT: pushq %r12
1644 ; KNL-NEXT: Ltmp13:
1644 ; KNL-NEXT: Lcfi13:
16451645 ; KNL-NEXT: .cfi_def_cfa_offset 48
16461646 ; KNL-NEXT: pushq %rbx
1647 ; KNL-NEXT: Ltmp14:
1647 ; KNL-NEXT: Lcfi14:
16481648 ; KNL-NEXT: .cfi_def_cfa_offset 56
1649 ; KNL-NEXT: Ltmp15:
1649 ; KNL-NEXT: Lcfi15:
16501650 ; KNL-NEXT: .cfi_offset %rbx, -56
1651 ; KNL-NEXT: Ltmp16:
1651 ; KNL-NEXT: Lcfi16:
16521652 ; KNL-NEXT: .cfi_offset %r12, -48
1653 ; KNL-NEXT: Ltmp17:
1653 ; KNL-NEXT: Lcfi17:
16541654 ; KNL-NEXT: .cfi_offset %r13, -40
1655 ; KNL-NEXT: Ltmp18:
1655 ; KNL-NEXT: Lcfi18:
16561656 ; KNL-NEXT: .cfi_offset %r14, -32
1657 ; KNL-NEXT: Ltmp19:
1657 ; KNL-NEXT: Lcfi19:
16581658 ; KNL-NEXT: .cfi_offset %r15, -24
1659 ; KNL-NEXT: Ltmp20:
1659 ; KNL-NEXT: Lcfi20:
16601660 ; KNL-NEXT: .cfi_offset %rbp, -16
16611661 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
16621662 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
55 ; CHECK-LABEL: test_4i1:
66 ; CHECK: ## BB#0:
77 ; CHECK-NEXT: pushq %rax
8 ; CHECK-NEXT: Ltmp0:
8 ; CHECK-NEXT: Lcfi0:
99 ; CHECK-NEXT: .cfi_def_cfa_offset 16
1010 ; CHECK-NEXT: vpcmpnleud %xmm1, %xmm0, %k0
1111 ; CHECK-NEXT: kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Spill
3030 ; CHECK-LABEL: test_8i1:
3131 ; CHECK: ## BB#0:
3232 ; CHECK-NEXT: pushq %rax
33 ; CHECK-NEXT: Ltmp1:
33 ; CHECK-NEXT: Lcfi1:
3434 ; CHECK-NEXT: .cfi_def_cfa_offset 16
3535 ; CHECK-NEXT: vpcmpnleud %ymm1, %ymm0, %k0
3636 ; CHECK-NEXT: kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Spill
5555 ; CHECK-LABEL: test_16i1:
5656 ; CHECK: ## BB#0:
5757 ; CHECK-NEXT: pushq %rax
58 ; CHECK-NEXT: Ltmp2:
58 ; CHECK-NEXT: Lcfi2:
5959 ; CHECK-NEXT: .cfi_def_cfa_offset 16
6060 ; CHECK-NEXT: vpcmpnleud %zmm1, %zmm0, %k0
6161 ; CHECK-NEXT: kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Spill
7979 ; CHECK-LABEL: test_32i1:
8080 ; CHECK: ## BB#0:
8181 ; CHECK-NEXT: pushq %rax
82 ; CHECK-NEXT: Ltmp3:
82 ; CHECK-NEXT: Lcfi3:
8383 ; CHECK-NEXT: .cfi_def_cfa_offset 16
8484 ; CHECK-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0
8585 ; CHECK-NEXT: kmovd %k0, {{[0-9]+}}(%rsp) ## 4-byte Spill
103103 ; CHECK-LABEL: test_64i1:
104104 ; CHECK: ## BB#0:
105105 ; CHECK-NEXT: subq $24, %rsp
106 ; CHECK-NEXT: Ltmp4:
106 ; CHECK-NEXT: Lcfi4:
107107 ; CHECK-NEXT: .cfi_def_cfa_offset 32
108108 ; CHECK-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
109109 ; CHECK-NEXT: kmovq %k0, {{[0-9]+}}(%rsp) ## 8-byte Spill
407407 ; ALL-LABEL: broadcast_ss_spill:
408408 ; ALL: # BB#0:
409409 ; ALL-NEXT: pushq %rax
410 ; ALL-NEXT: .Ltmp0:
410 ; ALL-NEXT: .Lcfi0:
411411 ; ALL-NEXT: .cfi_def_cfa_offset 16
412412 ; ALL-NEXT: vaddss %xmm0, %xmm0, %xmm0
413413 ; ALL-NEXT: vmovss %xmm0, {{[0-9]+}}(%rsp) # 4-byte Spill
427427 ; ALL-LABEL: broadcast_sd_spill:
428428 ; ALL: # BB#0:
429429 ; ALL-NEXT: pushq %rax
430 ; ALL-NEXT: .Ltmp1:
430 ; ALL-NEXT: .Lcfi1:
431431 ; ALL-NEXT: .cfi_def_cfa_offset 16
432432 ; ALL-NEXT: vaddsd %xmm0, %xmm0, %xmm0
433433 ; ALL-NEXT: vmovsd %xmm0, (%rsp) # 8-byte Spill
281281 ; AVX512F-32-LABEL: test_pcmpeq_b:
282282 ; AVX512F-32: # BB#0:
283283 ; AVX512F-32-NEXT: subl $12, %esp
284 ; AVX512F-32-NEXT: .Ltmp0:
284 ; AVX512F-32-NEXT: .Lcfi0:
285285 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
286286 ; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
287287 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
304304 ; AVX512F-32-LABEL: test_mask_pcmpeq_b:
305305 ; AVX512F-32: # BB#0:
306306 ; AVX512F-32-NEXT: subl $12, %esp
307 ; AVX512F-32-NEXT: .Ltmp1:
307 ; AVX512F-32-NEXT: .Lcfi1:
308308 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
309309 ; AVX512F-32-NEXT: kmovq {{[0-9]+}}(%esp), %k1
310310 ; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0 {%k1}
365365 ; AVX512F-32-LABEL: test_pcmpgt_b:
366366 ; AVX512F-32: # BB#0:
367367 ; AVX512F-32-NEXT: subl $12, %esp
368 ; AVX512F-32-NEXT: .Ltmp2:
368 ; AVX512F-32-NEXT: .Lcfi2:
369369 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
370370 ; AVX512F-32-NEXT: vpcmpgtb %zmm1, %zmm0, %k0
371371 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
388388 ; AVX512F-32-LABEL: test_mask_pcmpgt_b:
389389 ; AVX512F-32: # BB#0:
390390 ; AVX512F-32-NEXT: subl $12, %esp
391 ; AVX512F-32-NEXT: .Ltmp3:
391 ; AVX512F-32-NEXT: .Lcfi3:
392392 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
393393 ; AVX512F-32-NEXT: kmovq {{[0-9]+}}(%esp), %k1
394394 ; AVX512F-32-NEXT: vpcmpgtb %zmm1, %zmm0, %k0 {%k1}
3232 ; AVX512F-32-LABEL: test_cmp_b_512:
3333 ; AVX512F-32: # BB#0:
3434 ; AVX512F-32-NEXT: subl $68, %esp
35 ; AVX512F-32-NEXT: .Ltmp0:
35 ; AVX512F-32-NEXT: .Lcfi0:
3636 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
3737 ; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
3838 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
118118 ; AVX512F-32-LABEL: test_mask_cmp_b_512:
119119 ; AVX512F-32: # BB#0:
120120 ; AVX512F-32-NEXT: subl $68, %esp
121 ; AVX512F-32-NEXT: .Ltmp1:
121 ; AVX512F-32-NEXT: .Lcfi1:
122122 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
123123 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
124124 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
208208 ; AVX512F-32-LABEL: test_ucmp_b_512:
209209 ; AVX512F-32: # BB#0:
210210 ; AVX512F-32-NEXT: subl $68, %esp
211 ; AVX512F-32-NEXT: .Ltmp2:
211 ; AVX512F-32-NEXT: .Lcfi2:
212212 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
213213 ; AVX512F-32-NEXT: vpcmpequb %zmm1, %zmm0, %k0
214214 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
294294 ; AVX512F-32-LABEL: test_mask_x86_avx512_ucmp_b_512:
295295 ; AVX512F-32: # BB#0:
296296 ; AVX512F-32-NEXT: subl $68, %esp
297 ; AVX512F-32-NEXT: .Ltmp3:
297 ; AVX512F-32-NEXT: .Lcfi3:
298298 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
299299 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
300300 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
21882188 ; AVX512F-32-LABEL: test_int_x86_avx512_kunpck_qd:
21892189 ; AVX512F-32: # BB#0:
21902190 ; AVX512F-32-NEXT: subl $12, %esp
2191 ; AVX512F-32-NEXT: .Ltmp4:
2191 ; AVX512F-32-NEXT: .Lcfi4:
21922192 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
21932193 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
21942194 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
22142214 ; AVX512F-32-LABEL: test_int_x86_avx512_cvtb2mask_512:
22152215 ; AVX512F-32: # BB#0:
22162216 ; AVX512F-32-NEXT: subl $12, %esp
2217 ; AVX512F-32-NEXT: .Ltmp5:
2217 ; AVX512F-32-NEXT: .Lcfi5:
22182218 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
22192219 ; AVX512F-32-NEXT: vpmovb2m %zmm0, %k0
22202220 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
24362436 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestm_b_512:
24372437 ; AVX512F-32: # BB#0:
24382438 ; AVX512F-32-NEXT: subl $20, %esp
2439 ; AVX512F-32-NEXT: .Ltmp6:
2439 ; AVX512F-32-NEXT: .Lcfi6:
24402440 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
24412441 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
24422442 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
25012501 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestnm_b_512:
25022502 ; AVX512F-32: # BB#0:
25032503 ; AVX512F-32-NEXT: subl $20, %esp
2504 ; AVX512F-32-NEXT: .Ltmp7:
2504 ; AVX512F-32-NEXT: .Lcfi7:
25052505 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
25062506 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
25072507 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2323 ; X32-LABEL: test_mm_mask_broadcastd_epi32:
2424 ; X32: # BB#0:
2525 ; X32-NEXT: pushl %eax
26 ; X32-NEXT: .Ltmp0:
26 ; X32-NEXT: .Lcfi0:
2727 ; X32-NEXT: .cfi_def_cfa_offset 8
2828 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
2929 ; X32-NEXT: andb $15, %al
5656 ; X32-LABEL: test_mm_maskz_broadcastd_epi32:
5757 ; X32: # BB#0:
5858 ; X32-NEXT: pushl %eax
59 ; X32-NEXT: .Ltmp1:
59 ; X32-NEXT: .Lcfi1:
6060 ; X32-NEXT: .cfi_def_cfa_offset 8
6161 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
6262 ; X32-NEXT: andb $15, %al
161161 ; X32-LABEL: test_mm_mask_broadcastq_epi64:
162162 ; X32: # BB#0:
163163 ; X32-NEXT: pushl %eax
164 ; X32-NEXT: .Ltmp2:
164 ; X32-NEXT: .Lcfi2:
165165 ; X32-NEXT: .cfi_def_cfa_offset 8
166166 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
167167 ; X32-NEXT: andb $3, %al
191191 ; X32-LABEL: test_mm_maskz_broadcastq_epi64:
192192 ; X32: # BB#0:
193193 ; X32-NEXT: pushl %eax
194 ; X32-NEXT: .Ltmp3:
194 ; X32-NEXT: .Lcfi3:
195195 ; X32-NEXT: .cfi_def_cfa_offset 8
196196 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
197197 ; X32-NEXT: andb $3, %al
235235 ; X32-LABEL: test_mm256_mask_broadcastq_epi64:
236236 ; X32: # BB#0:
237237 ; X32-NEXT: pushl %eax
238 ; X32-NEXT: .Ltmp4:
238 ; X32-NEXT: .Lcfi4:
239239 ; X32-NEXT: .cfi_def_cfa_offset 8
240240 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
241241 ; X32-NEXT: andb $15, %al
265265 ; X32-LABEL: test_mm256_maskz_broadcastq_epi64:
266266 ; X32: # BB#0:
267267 ; X32-NEXT: pushl %eax
268 ; X32-NEXT: .Ltmp5:
268 ; X32-NEXT: .Lcfi5:
269269 ; X32-NEXT: .cfi_def_cfa_offset 8
270270 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
271271 ; X32-NEXT: andb $15, %al
309309 ; X32-LABEL: test_mm_mask_broadcastsd_pd:
310310 ; X32: # BB#0:
311311 ; X32-NEXT: pushl %eax
312 ; X32-NEXT: .Ltmp6:
312 ; X32-NEXT: .Lcfi6:
313313 ; X32-NEXT: .cfi_def_cfa_offset 8
314314 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
315315 ; X32-NEXT: andb $3, %al
339339 ; X32-LABEL: test_mm_maskz_broadcastsd_pd:
340340 ; X32: # BB#0:
341341 ; X32-NEXT: pushl %eax
342 ; X32-NEXT: .Ltmp7:
342 ; X32-NEXT: .Lcfi7:
343343 ; X32-NEXT: .cfi_def_cfa_offset 8
344344 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
345345 ; X32-NEXT: andb $3, %al
383383 ; X32-LABEL: test_mm256_mask_broadcastsd_pd:
384384 ; X32: # BB#0:
385385 ; X32-NEXT: pushl %eax
386 ; X32-NEXT: .Ltmp8:
386 ; X32-NEXT: .Lcfi8:
387387 ; X32-NEXT: .cfi_def_cfa_offset 8
388388 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
389389 ; X32-NEXT: andb $15, %al
413413 ; X32-LABEL: test_mm256_maskz_broadcastsd_pd:
414414 ; X32: # BB#0:
415415 ; X32-NEXT: pushl %eax
416 ; X32-NEXT: .Ltmp9:
416 ; X32-NEXT: .Lcfi9:
417417 ; X32-NEXT: .cfi_def_cfa_offset 8
418418 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
419419 ; X32-NEXT: andb $15, %al
457457 ; X32-LABEL: test_mm_mask_broadcastss_ps:
458458 ; X32: # BB#0:
459459 ; X32-NEXT: pushl %eax
460 ; X32-NEXT: .Ltmp10:
460 ; X32-NEXT: .Lcfi10:
461461 ; X32-NEXT: .cfi_def_cfa_offset 8
462462 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
463463 ; X32-NEXT: andb $15, %al
487487 ; X32-LABEL: test_mm_maskz_broadcastss_ps:
488488 ; X32: # BB#0:
489489 ; X32-NEXT: pushl %eax
490 ; X32-NEXT: .Ltmp11:
490 ; X32-NEXT: .Lcfi11:
491491 ; X32-NEXT: .cfi_def_cfa_offset 8
492492 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
493493 ; X32-NEXT: andb $15, %al
583583 ; X32-LABEL: test_mm_mask_movddup_pd:
584584 ; X32: # BB#0:
585585 ; X32-NEXT: pushl %eax
586 ; X32-NEXT: .Ltmp12:
586 ; X32-NEXT: .Lcfi12:
587587 ; X32-NEXT: .cfi_def_cfa_offset 8
588588 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
589589 ; X32-NEXT: andb $3, %al
613613 ; X32-LABEL: test_mm_maskz_movddup_pd:
614614 ; X32: # BB#0:
615615 ; X32-NEXT: pushl %eax
616 ; X32-NEXT: .Ltmp13:
616 ; X32-NEXT: .Lcfi13:
617617 ; X32-NEXT: .cfi_def_cfa_offset 8
618618 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
619619 ; X32-NEXT: andb $3, %al
657657 ; X32-LABEL: test_mm256_mask_movddup_pd:
658658 ; X32: # BB#0:
659659 ; X32-NEXT: pushl %eax
660 ; X32-NEXT: .Ltmp14:
660 ; X32-NEXT: .Lcfi14:
661661 ; X32-NEXT: .cfi_def_cfa_offset 8
662662 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
663663 ; X32-NEXT: andb $15, %al
687687 ; X32-LABEL: test_mm256_maskz_movddup_pd:
688688 ; X32: # BB#0:
689689 ; X32-NEXT: pushl %eax
690 ; X32-NEXT: .Ltmp15:
690 ; X32-NEXT: .Lcfi15:
691691 ; X32-NEXT: .cfi_def_cfa_offset 8
692692 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
693693 ; X32-NEXT: andb $15, %al
731731 ; X32-LABEL: test_mm_mask_movehdup_ps:
732732 ; X32: # BB#0:
733733 ; X32-NEXT: pushl %eax
734 ; X32-NEXT: .Ltmp16:
734 ; X32-NEXT: .Lcfi16:
735735 ; X32-NEXT: .cfi_def_cfa_offset 8
736736 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
737737 ; X32-NEXT: andb $15, %al
761761 ; X32-LABEL: test_mm_maskz_movehdup_ps:
762762 ; X32: # BB#0:
763763 ; X32-NEXT: pushl %eax
764 ; X32-NEXT: .Ltmp17:
764 ; X32-NEXT: .Lcfi17:
765765 ; X32-NEXT: .cfi_def_cfa_offset 8
766766 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
767767 ; X32-NEXT: andb $15, %al
857857 ; X32-LABEL: test_mm_mask_moveldup_ps:
858858 ; X32: # BB#0:
859859 ; X32-NEXT: pushl %eax
860 ; X32-NEXT: .Ltmp18:
860 ; X32-NEXT: .Lcfi18:
861861 ; X32-NEXT: .cfi_def_cfa_offset 8
862862 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
863863 ; X32-NEXT: andb $15, %al
887887 ; X32-LABEL: test_mm_maskz_moveldup_ps:
888888 ; X32: # BB#0:
889889 ; X32-NEXT: pushl %eax
890 ; X32-NEXT: .Ltmp19:
890 ; X32-NEXT: .Lcfi19:
891891 ; X32-NEXT: .cfi_def_cfa_offset 8
892892 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
893893 ; X32-NEXT: andb $15, %al
983983 ; X32-LABEL: test_mm256_mask_permutex_epi64:
984984 ; X32: # BB#0:
985985 ; X32-NEXT: pushl %eax
986 ; X32-NEXT: .Ltmp20:
986 ; X32-NEXT: .Lcfi20:
987987 ; X32-NEXT: .cfi_def_cfa_offset 8
988988 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
989989 ; X32-NEXT: andb $15, %al
10131013 ; X32-LABEL: test_mm256_maskz_permutex_epi64:
10141014 ; X32: # BB#0:
10151015 ; X32-NEXT: pushl %eax
1016 ; X32-NEXT: .Ltmp21:
1016 ; X32-NEXT: .Lcfi21:
10171017 ; X32-NEXT: .cfi_def_cfa_offset 8
10181018 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
10191019 ; X32-NEXT: andb $15, %al
10571057 ; X32-LABEL: test_mm256_mask_permutex_pd:
10581058 ; X32: # BB#0:
10591059 ; X32-NEXT: pushl %eax
1060 ; X32-NEXT: .Ltmp22:
1060 ; X32-NEXT: .Lcfi22:
10611061 ; X32-NEXT: .cfi_def_cfa_offset 8
10621062 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
10631063 ; X32-NEXT: andb $15, %al
10871087 ; X32-LABEL: test_mm256_maskz_permutex_pd:
10881088 ; X32: # BB#0:
10891089 ; X32-NEXT: pushl %eax
1090 ; X32-NEXT: .Ltmp23:
1090 ; X32-NEXT: .Lcfi23:
10911091 ; X32-NEXT: .cfi_def_cfa_offset 8
10921092 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
10931093 ; X32-NEXT: andb $15, %al
11311131 ; X32-LABEL: test_mm_mask_shuffle_pd:
11321132 ; X32: # BB#0:
11331133 ; X32-NEXT: pushl %eax
1134 ; X32-NEXT: .Ltmp24:
1134 ; X32-NEXT: .Lcfi24:
11351135 ; X32-NEXT: .cfi_def_cfa_offset 8
11361136 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
11371137 ; X32-NEXT: andb $3, %al
11611161 ; X32-LABEL: test_mm_maskz_shuffle_pd:
11621162 ; X32: # BB#0:
11631163 ; X32-NEXT: pushl %eax
1164 ; X32-NEXT: .Ltmp25:
1164 ; X32-NEXT: .Lcfi25:
11651165 ; X32-NEXT: .cfi_def_cfa_offset 8
11661166 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
11671167 ; X32-NEXT: andb $3, %al
12051205 ; X32-LABEL: test_mm256_mask_shuffle_pd:
12061206 ; X32: # BB#0:
12071207 ; X32-NEXT: pushl %eax
1208 ; X32-NEXT: .Ltmp26:
1208 ; X32-NEXT: .Lcfi26:
12091209 ; X32-NEXT: .cfi_def_cfa_offset 8
12101210 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
12111211 ; X32-NEXT: andb $15, %al
12351235 ; X32-LABEL: test_mm256_maskz_shuffle_pd:
12361236 ; X32: # BB#0:
12371237 ; X32-NEXT: pushl %eax
1238 ; X32-NEXT: .Ltmp27:
1238 ; X32-NEXT: .Lcfi27:
12391239 ; X32-NEXT: .cfi_def_cfa_offset 8
12401240 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
12411241 ; X32-NEXT: andb $15, %al
12791279 ; X32-LABEL: test_mm_mask_shuffle_ps:
12801280 ; X32: # BB#0:
12811281 ; X32-NEXT: pushl %eax
1282 ; X32-NEXT: .Ltmp28:
1282 ; X32-NEXT: .Lcfi28:
12831283 ; X32-NEXT: .cfi_def_cfa_offset 8
12841284 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
12851285 ; X32-NEXT: andb $15, %al
13091309 ; X32-LABEL: test_mm_maskz_shuffle_ps:
13101310 ; X32: # BB#0:
13111311 ; X32-NEXT: pushl %eax
1312 ; X32-NEXT: .Ltmp29:
1312 ; X32-NEXT: .Lcfi29:
13131313 ; X32-NEXT: .cfi_def_cfa_offset 8
13141314 ; X32-NEXT: movb {{[0-9]+}}(%esp), %al
13151315 ; X32-NEXT: andb $15, %al
55 ; CHECK-LABEL: _256_broadcast_ss_spill:
66 ; CHECK: # BB#0:
77 ; CHECK-NEXT: pushq %rax
8 ; CHECK-NEXT: .Ltmp0:
8 ; CHECK-NEXT: .Lcfi0:
99 ; CHECK-NEXT: .cfi_def_cfa_offset 16
1010 ; CHECK-NEXT: vaddss %xmm0, %xmm0, %xmm0
1111 ; CHECK-NEXT: vmovss %xmm0, {{[0-9]+}}(%rsp) # 4-byte Spill
2424 ; CHECK-LABEL: _128_broadcast_ss_spill:
2525 ; CHECK: # BB#0:
2626 ; CHECK-NEXT: pushq %rax
27 ; CHECK-NEXT: .Ltmp1:
27 ; CHECK-NEXT: .Lcfi1:
2828 ; CHECK-NEXT: .cfi_def_cfa_offset 16
2929 ; CHECK-NEXT: vaddss %xmm0, %xmm0, %xmm0
3030 ; CHECK-NEXT: vmovss %xmm0, {{[0-9]+}}(%rsp) # 4-byte Spill
4444 ; CHECK-LABEL: _256_broadcast_sd_spill:
4545 ; CHECK: # BB#0:
4646 ; CHECK-NEXT: pushq %rax
47 ; CHECK-NEXT: .Ltmp2:
47 ; CHECK-NEXT: .Lcfi2:
4848 ; CHECK-NEXT: .cfi_def_cfa_offset 16
4949 ; CHECK-NEXT: vaddsd %xmm0, %xmm0, %xmm0
5050 ; CHECK-NEXT: vmovsd %xmm0, (%rsp) # 8-byte Spill
1111 ; CHECK-NEXT: {{.+cfi.+}}
1212 ; CHECK-NEXT: ##{{.+}}
1313 ; CHECK-NEXT: pushq %rax
14 ; CHECK-NEXT: {{Ltmp[0-9]+}}:
14 ; CHECK-NEXT: {{Lcfi[0-9]+}}:
1515 ; CHECK-NEXT: {{.+cfi.+}}
1616 ; CHECK-NEXT: movl $1140457472, (%rsp) ## imm = 0x43FA0000
1717 ; CHECK-NEXT: movl $42, %eax
1212 ; CHECK-NEXT: {{.+cfi.+}}
1313 ; CHECK-NEXT: ##{{.+}}
1414 ; CHECK-NEXT: pushq %rax
15 ; CHECK-NEXT: {{Ltmp[0-9]+}}:
15 ; CHECK-NEXT: {{Lcfi[0-9]+}}:
1616 ; CHECK-NEXT: {{.+cfi.+}}
1717 ; CHECK-NEXT: callq ___llvm_deoptimize
1818 ; CHECK-NEXT: {{Ltmp[0-9]+}}:
2626 ; CHECK-NEXT: {{.+cfi.+}}
2727 ; CHECK-NEXT: ##{{.+}}
2828 ; CHECK-NEXT: pushq %rax
29 ; CHECK-NEXT: {{Ltmp[0-9]+}}:
29 ; CHECK-NEXT: {{Lcfi[0-9]+}}:
3030 ; CHECK-NEXT: {{.+cfi.+}}
3131 ; CHECK-NEXT: movss {{[a-zA-Z0-9_]+}}(%rip), %xmm0 ## xmm0 = mem[0],zero,zero,zero
3232 ; CHECK-NEXT: movl $42, %edi
367367 ; SSE64-LABEL: test_store_4xf64:
368368 ; SSE64: # BB#0:
369369 ; SSE64-NEXT: subl $12, %esp
370 ; SSE64-NEXT: .Ltmp0:
370 ; SSE64-NEXT: .Lcfi0:
371371 ; SSE64-NEXT: .cfi_def_cfa_offset 16
372372 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
373373 ; SSE64-NEXT: addpd {{[0-9]+}}(%esp), %xmm1
406406 ; SSE64-LABEL: test_store_4xf64_aligned:
407407 ; SSE64: # BB#0:
408408 ; SSE64-NEXT: subl $12, %esp
409 ; SSE64-NEXT: .Ltmp1:
409 ; SSE64-NEXT: .Lcfi1:
410410 ; SSE64-NEXT: .cfi_def_cfa_offset 16
411411 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
412412 ; SSE64-NEXT: addpd {{[0-9]+}}(%esp), %xmm1
445445 ; SSE64-LABEL: test_store_16xi32:
446446 ; SSE64: # BB#0:
447447 ; SSE64-NEXT: subl $12, %esp
448 ; SSE64-NEXT: .Ltmp2:
448 ; SSE64-NEXT: .Lcfi2:
449449 ; SSE64-NEXT: .cfi_def_cfa_offset 16
450450 ; SSE64-NEXT: movaps {{[0-9]+}}(%esp), %xmm3
451451 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
495495 ; SSE64-LABEL: test_store_16xi32_aligned:
496496 ; SSE64: # BB#0:
497497 ; SSE64-NEXT: subl $12, %esp
498 ; SSE64-NEXT: .Ltmp3:
498 ; SSE64-NEXT: .Lcfi3:
499499 ; SSE64-NEXT: .cfi_def_cfa_offset 16
500500 ; SSE64-NEXT: movaps {{[0-9]+}}(%esp), %xmm3
501501 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
545545 ; SSE64-LABEL: test_store_16xf32:
546546 ; SSE64: # BB#0:
547547 ; SSE64-NEXT: subl $12, %esp
548 ; SSE64-NEXT: .Ltmp4:
548 ; SSE64-NEXT: .Lcfi4:
549549 ; SSE64-NEXT: .cfi_def_cfa_offset 16
550550 ; SSE64-NEXT: movaps {{[0-9]+}}(%esp), %xmm3
551551 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
595595 ; SSE64-LABEL: test_store_16xf32_aligned:
596596 ; SSE64: # BB#0:
597597 ; SSE64-NEXT: subl $12, %esp
598 ; SSE64-NEXT: .Ltmp5:
598 ; SSE64-NEXT: .Lcfi5:
599599 ; SSE64-NEXT: .cfi_def_cfa_offset 16
600600 ; SSE64-NEXT: movaps {{[0-9]+}}(%esp), %xmm3
601601 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
649649 ; SSE64-LABEL: test_store_8xf64:
650650 ; SSE64: # BB#0:
651651 ; SSE64-NEXT: subl $12, %esp
652 ; SSE64-NEXT: .Ltmp6:
652 ; SSE64-NEXT: .Lcfi6:
653653 ; SSE64-NEXT: .cfi_def_cfa_offset 16
654654 ; SSE64-NEXT: movapd {{[0-9]+}}(%esp), %xmm3
655655 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
675675 ; AVXONLY64-LABEL: test_store_8xf64:
676676 ; AVXONLY64: # BB#0:
677677 ; AVXONLY64-NEXT: pushl %ebp
678 ; AVXONLY64-NEXT: .Ltmp0:
678 ; AVXONLY64-NEXT: .Lcfi0:
679679 ; AVXONLY64-NEXT: .cfi_def_cfa_offset 8
680 ; AVXONLY64-NEXT: .Ltmp1:
680 ; AVXONLY64-NEXT: .Lcfi1:
681681 ; AVXONLY64-NEXT: .cfi_offset %ebp, -8
682682 ; AVXONLY64-NEXT: movl %esp, %ebp
683 ; AVXONLY64-NEXT: .Ltmp2:
683 ; AVXONLY64-NEXT: .Lcfi2:
684684 ; AVXONLY64-NEXT: .cfi_def_cfa_register %ebp
685685 ; AVXONLY64-NEXT: andl $-32, %esp
686686 ; AVXONLY64-NEXT: subl $32, %esp
726726 ; SSE64-LABEL: test_store_8xf64_aligned:
727727 ; SSE64: # BB#0:
728728 ; SSE64-NEXT: subl $12, %esp
729 ; SSE64-NEXT: .Ltmp7:
729 ; SSE64-NEXT: .Lcfi7:
730730 ; SSE64-NEXT: .cfi_def_cfa_offset 16
731731 ; SSE64-NEXT: movapd {{[0-9]+}}(%esp), %xmm3
732732 ; SSE64-NEXT: movl {{[0-9]+}}(%esp), %eax
752752 ; AVXONLY64-LABEL: test_store_8xf64_aligned:
753753 ; AVXONLY64: # BB#0:
754754 ; AVXONLY64-NEXT: pushl %ebp
755 ; AVXONLY64-NEXT: .Ltmp3:
755 ; AVXONLY64-NEXT: .Lcfi3:
756756 ; AVXONLY64-NEXT: .cfi_def_cfa_offset 8
757 ; AVXONLY64-NEXT: .Ltmp4:
757 ; AVXONLY64-NEXT: .Lcfi4:
758758 ; AVXONLY64-NEXT: .cfi_offset %ebp, -8
759759 ; AVXONLY64-NEXT: movl %esp, %ebp
760 ; AVXONLY64-NEXT: .Ltmp5:
760 ; AVXONLY64-NEXT: .Lcfi5:
761761 ; AVXONLY64-NEXT: .cfi_def_cfa_register %ebp
762762 ; AVXONLY64-NEXT: andl $-32, %esp
763763 ; AVXONLY64-NEXT: subl $32, %esp
623623 ; SSE3-LABEL: avx2_vphadd_w_test:
624624 ; SSE3: # BB#0:
625625 ; SSE3-NEXT: pushq %rbp
626 ; SSE3-NEXT: .Ltmp0:
626 ; SSE3-NEXT: .Lcfi0:
627627 ; SSE3-NEXT: .cfi_def_cfa_offset 16
628628 ; SSE3-NEXT: pushq %r15
629 ; SSE3-NEXT: .Ltmp1:
629 ; SSE3-NEXT: .Lcfi1:
630630 ; SSE3-NEXT: .cfi_def_cfa_offset 24
631631 ; SSE3-NEXT: pushq %r14
632 ; SSE3-NEXT: .Ltmp2:
632 ; SSE3-NEXT: .Lcfi2:
633633 ; SSE3-NEXT: .cfi_def_cfa_offset 32
634634 ; SSE3-NEXT: pushq %r13
635 ; SSE3-NEXT: .Ltmp3:
635 ; SSE3-NEXT: .Lcfi3:
636636 ; SSE3-NEXT: .cfi_def_cfa_offset 40
637637 ; SSE3-NEXT: pushq %r12
638 ; SSE3-NEXT: .Ltmp4:
638 ; SSE3-NEXT: .Lcfi4:
639639 ; SSE3-NEXT: .cfi_def_cfa_offset 48
640640 ; SSE3-NEXT: pushq %rbx
641 ; SSE3-NEXT: .Ltmp5:
641 ; SSE3-NEXT: .Lcfi5:
642642 ; SSE3-NEXT: .cfi_def_cfa_offset 56
643 ; SSE3-NEXT: .Ltmp6:
643 ; SSE3-NEXT: .Lcfi6:
644644 ; SSE3-NEXT: .cfi_offset %rbx, -56
645 ; SSE3-NEXT: .Ltmp7:
645 ; SSE3-NEXT: .Lcfi7:
646646 ; SSE3-NEXT: .cfi_offset %r12, -48
647 ; SSE3-NEXT: .Ltmp8:
647 ; SSE3-NEXT: .Lcfi8:
648648 ; SSE3-NEXT: .cfi_offset %r13, -40
649 ; SSE3-NEXT: .Ltmp9:
649 ; SSE3-NEXT: .Lcfi9:
650650 ; SSE3-NEXT: .cfi_offset %r14, -32
651 ; SSE3-NEXT: .Ltmp10:
651 ; SSE3-NEXT: .Lcfi10:
652652 ; SSE3-NEXT: .cfi_offset %r15, -24
653 ; SSE3-NEXT: .Ltmp11:
653 ; SSE3-NEXT: .Lcfi11:
654654 ; SSE3-NEXT: .cfi_offset %rbp, -16
655655 ; SSE3-NEXT: movd %xmm0, %eax
656656 ; SSE3-NEXT: pextrw $1, %xmm0, %ecx
12621262 ; SSE3-LABEL: avx2_hadd_w:
12631263 ; SSE3: # BB#0:
12641264 ; SSE3-NEXT: pushq %rbp
1265 ; SSE3-NEXT: .Ltmp12:
1265 ; SSE3-NEXT: .Lcfi12:
12661266 ; SSE3-NEXT: .cfi_def_cfa_offset 16
12671267 ; SSE3-NEXT: pushq %r15
1268 ; SSE3-NEXT: .Ltmp13:
1268 ; SSE3-NEXT: .Lcfi13:
12691269 ; SSE3-NEXT: .cfi_def_cfa_offset 24
12701270 ; SSE3-NEXT: pushq %r14
1271 ; SSE3-NEXT: .Ltmp14:
1271 ; SSE3-NEXT: .Lcfi14:
12721272 ; SSE3-NEXT: .cfi_def_cfa_offset 32
12731273 ; SSE3-NEXT: pushq %r13
1274 ; SSE3-NEXT: .Ltmp15:
1274 ; SSE3-NEXT: .Lcfi15:
12751275 ; SSE3-NEXT: .cfi_def_cfa_offset 40
12761276 ; SSE3-NEXT: pushq %r12
1277 ; SSE3-NEXT: .Ltmp16:
1277 ; SSE3-NEXT: .Lcfi16:
12781278 ; SSE3-NEXT: .cfi_def_cfa_offset 48
12791279 ; SSE3-NEXT: pushq %rbx
1280 ; SSE3-NEXT: .Ltmp17:
1280 ; SSE3-NEXT: .Lcfi17:
12811281 ; SSE3-NEXT: .cfi_def_cfa_offset 56
1282 ; SSE3-NEXT: .Ltmp18:
1282 ; SSE3-NEXT: .Lcfi18:
12831283 ; SSE3-NEXT: .cfi_offset %rbx, -56
1284 ; SSE3-NEXT: .Ltmp19:
1284 ; SSE3-NEXT: .Lcfi19:
12851285 ; SSE3-NEXT: .cfi_offset %r12, -48
1286 ; SSE3-NEXT: .Ltmp20:
1286 ; SSE3-NEXT: .Lcfi20:
12871287 ; SSE3-NEXT: .cfi_offset %r13, -40
1288 ; SSE3-NEXT: .Ltmp21:
1288 ; SSE3-NEXT: .Lcfi21:
12891289 ; SSE3-NEXT: .cfi_offset %r14, -32
1290 ; SSE3-NEXT: .Ltmp22:
1290 ; SSE3-NEXT: .Lcfi22:
12911291 ; SSE3-NEXT: .cfi_offset %r15, -24
1292 ; SSE3-NEXT: .Ltmp23:
1292 ; SSE3-NEXT: .Lcfi23:
12931293 ; SSE3-NEXT: .cfi_offset %rbp, -16
12941294 ; SSE3-NEXT: movd %xmm0, %eax
12951295 ; SSE3-NEXT: pextrw $1, %xmm0, %ecx
7575 ; CHECK-LABEL: test5:
7676 ; CHECK: # BB#0:
7777 ; CHECK-NEXT: pushl %ebp
78 ; CHECK-NEXT: .Ltmp0:
78 ; CHECK-NEXT: .Lcfi0:
7979 ; CHECK-NEXT: .cfi_def_cfa_offset 8
8080 ; CHECK-NEXT: pushl %ebx
81 ; CHECK-NEXT: .Ltmp1:
81 ; CHECK-NEXT: .Lcfi1:
8282 ; CHECK-NEXT: .cfi_def_cfa_offset 12
8383 ; CHECK-NEXT: pushl %edi
84 ; CHECK-NEXT: .Ltmp2:
84 ; CHECK-NEXT: .Lcfi2:
8585 ; CHECK-NEXT: .cfi_def_cfa_offset 16
8686 ; CHECK-NEXT: pushl %esi
87 ; CHECK-NEXT: .Ltmp3:
87 ; CHECK-NEXT: .Lcfi3:
8888 ; CHECK-NEXT: .cfi_def_cfa_offset 20
89 ; CHECK-NEXT: .Ltmp4:
89 ; CHECK-NEXT: .Lcfi4:
9090 ; CHECK-NEXT: .cfi_offset %esi, -20
91 ; CHECK-NEXT: .Ltmp5:
91 ; CHECK-NEXT: .Lcfi5:
9292 ; CHECK-NEXT: .cfi_offset %edi, -16
93 ; CHECK-NEXT: .Ltmp6:
93 ; CHECK-NEXT: .Lcfi6:
9494 ; CHECK-NEXT: .cfi_offset %ebx, -12
95 ; CHECK-NEXT: .Ltmp7:
95 ; CHECK-NEXT: .Lcfi7:
9696 ; CHECK-NEXT: .cfi_offset %ebp, -8
9797 ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
9898 ; CHECK-NEXT: movb {{[0-9]+}}(%esp), %cl
137137 ; CHECK-LABEL: test6:
138138 ; CHECK: # BB#0:
139139 ; CHECK-NEXT: pushl %ebp
140 ; CHECK-NEXT: .Ltmp8:
140 ; CHECK-NEXT: .Lcfi8:
141141 ; CHECK-NEXT: .cfi_def_cfa_offset 8
142 ; CHECK-NEXT: .Ltmp9:
142 ; CHECK-NEXT: .Lcfi9:
143143 ; CHECK-NEXT: .cfi_offset %ebp, -8
144144 ; CHECK-NEXT: movl %esp, %ebp
145 ; CHECK-NEXT: .Ltmp10:
145 ; CHECK-NEXT: .Lcfi10:
146146 ; CHECK-NEXT: .cfi_def_cfa_register %ebp
147147 ; CHECK-NEXT: andl $-8, %esp
148148 ; CHECK-NEXT: subl $16, %esp
16621662 ; KNL_32-LABEL: test_gather_16i64:
16631663 ; KNL_32: # BB#0:
16641664 ; KNL_32-NEXT: pushl %ebp
1665 ; KNL_32-NEXT: .Ltmp0:
1665 ; KNL_32-NEXT: .Lcfi0:
16661666 ; KNL_32-NEXT: .cfi_def_cfa_offset 8
1667 ; KNL_32-NEXT: .Ltmp1:
1667 ; KNL_32-NEXT: .Lcfi1:
16681668 ; KNL_32-NEXT: .cfi_offset %ebp, -8
16691669 ; KNL_32-NEXT: movl %esp, %ebp
1670 ; KNL_32-NEXT: .Ltmp2:
1670 ; KNL_32-NEXT: .Lcfi2:
16711671 ; KNL_32-NEXT: .cfi_def_cfa_register %ebp
16721672 ; KNL_32-NEXT: andl $-64, %esp
16731673 ; KNL_32-NEXT: subl $64, %esp
16991699 ; SKX_32-LABEL: test_gather_16i64:
17001700 ; SKX_32: # BB#0:
17011701 ; SKX_32-NEXT: pushl %ebp
1702 ; SKX_32-NEXT: .Ltmp1:
1702 ; SKX_32-NEXT: .Lcfi1:
17031703 ; SKX_32-NEXT: .cfi_def_cfa_offset 8
1704 ; SKX_32-NEXT: .Ltmp2:
1704 ; SKX_32-NEXT: .Lcfi2:
17051705 ; SKX_32-NEXT: .cfi_offset %ebp, -8
17061706 ; SKX_32-NEXT: movl %esp, %ebp
1707 ; SKX_32-NEXT: .Ltmp3:
1707 ; SKX_32-NEXT: .Lcfi3:
17081708 ; SKX_32-NEXT: .cfi_def_cfa_register %ebp
17091709 ; SKX_32-NEXT: andl $-64, %esp
17101710 ; SKX_32-NEXT: subl $64, %esp
17851785 ; KNL_32-LABEL: test_gather_16f64:
17861786 ; KNL_32: # BB#0:
17871787 ; KNL_32-NEXT: pushl %ebp
1788 ; KNL_32-NEXT: .Ltmp3:
1788 ; KNL_32-NEXT: .Lcfi3:
17891789 ; KNL_32-NEXT: .cfi_def_cfa_offset 8
1790 ; KNL_32-NEXT: .Ltmp4:
1790 ; KNL_32-NEXT: .Lcfi4:
17911791 ; KNL_32-NEXT: .cfi_offset %ebp, -8
17921792 ; KNL_32-NEXT: movl %esp, %ebp
1793 ; KNL_32-NEXT: .Ltmp5:
1793 ; KNL_32-NEXT: .Lcfi5:
17941794 ; KNL_32-NEXT: .cfi_def_cfa_register %ebp
17951795 ; KNL_32-NEXT: andl $-64, %esp
17961796 ; KNL_32-NEXT: subl $64, %esp
18221822 ; SKX_32-LABEL: test_gather_16f64:
18231823 ; SKX_32: # BB#0:
18241824 ; SKX_32-NEXT: pushl %ebp
1825 ; SKX_32-NEXT: .Ltmp4:
1825 ; SKX_32-NEXT: .Lcfi4:
18261826 ; SKX_32-NEXT: .cfi_def_cfa_offset 8
1827 ; SKX_32-NEXT: .Ltmp5:
1827 ; SKX_32-NEXT: .Lcfi5:
18281828 ; SKX_32-NEXT: .cfi_offset %ebp, -8
18291829 ; SKX_32-NEXT: movl %esp, %ebp
1830 ; SKX_32-NEXT: .Ltmp6:
1830 ; SKX_32-NEXT: .Lcfi6:
18311831 ; SKX_32-NEXT: .cfi_def_cfa_register %ebp
18321832 ; SKX_32-NEXT: andl $-64, %esp
18331833 ; SKX_32-NEXT: subl $64, %esp
19021902 ; KNL_32-LABEL: test_scatter_16i64:
19031903 ; KNL_32: # BB#0:
19041904 ; KNL_32-NEXT: pushl %ebp
1905 ; KNL_32-NEXT: .Ltmp6:
1905 ; KNL_32-NEXT: .Lcfi6:
19061906 ; KNL_32-NEXT: .cfi_def_cfa_offset 8
1907 ; KNL_32-NEXT: .Ltmp7:
1907 ; KNL_32-NEXT: .Lcfi7:
19081908 ; KNL_32-NEXT: .cfi_offset %ebp, -8
19091909 ; KNL_32-NEXT: movl %esp, %ebp
1910 ; KNL_32-NEXT: .Ltmp8:
1910 ; KNL_32-NEXT: .Lcfi8:
19111911 ; KNL_32-NEXT: .cfi_def_cfa_register %ebp
19121912 ; KNL_32-NEXT: andl $-64, %esp
19131913 ; KNL_32-NEXT: subl $64, %esp
19361936 ; SKX_32-LABEL: test_scatter_16i64:
19371937 ; SKX_32: # BB#0:
19381938 ; SKX_32-NEXT: pushl %ebp
1939 ; SKX_32-NEXT: .Ltmp7:
1939 ; SKX_32-NEXT: .Lcfi7:
19401940 ; SKX_32-NEXT: .cfi_def_cfa_offset 8
1941 ; SKX_32-NEXT: .Ltmp8:
1941 ; SKX_32-NEXT: .Lcfi8:
19421942 ; SKX_32-NEXT: .cfi_offset %ebp, -8
19431943 ; SKX_32-NEXT: movl %esp, %ebp
1944 ; SKX_32-NEXT: .Ltmp9:
1944 ; SKX_32-NEXT: .Lcfi9:
19451945 ; SKX_32-NEXT: .cfi_def_cfa_register %ebp
19461946 ; SKX_32-NEXT: andl $-64, %esp
19471947 ; SKX_32-NEXT: subl $64, %esp
20162016 ; KNL_32-LABEL: test_scatter_16f64:
20172017 ; KNL_32: # BB#0:
20182018 ; KNL_32-NEXT: pushl %ebp
2019 ; KNL_32-NEXT: .Ltmp9:
2019 ; KNL_32-NEXT: .Lcfi9:
20202020 ; KNL_32-NEXT: .cfi_def_cfa_offset 8
2021 ; KNL_32-NEXT: .Ltmp10:
2021 ; KNL_32-NEXT: .Lcfi10:
20222022 ; KNL_32-NEXT: .cfi_offset %ebp, -8
20232023 ; KNL_32-NEXT: movl %esp, %ebp
2024 ; KNL_32-NEXT: .Ltmp11:
2024 ; KNL_32-NEXT: .Lcfi11:
20252025 ; KNL_32-NEXT: .cfi_def_cfa_register %ebp
20262026 ; KNL_32-NEXT: andl $-64, %esp
20272027 ; KNL_32-NEXT: subl $64, %esp
20502050 ; SKX_32-LABEL: test_scatter_16f64:
20512051 ; SKX_32: # BB#0:
20522052 ; SKX_32-NEXT: pushl %ebp
2053 ; SKX_32-NEXT: .Ltmp10:
2053 ; SKX_32-NEXT: .Lcfi10:
20542054 ; SKX_32-NEXT: .cfi_def_cfa_offset 8
2055 ; SKX_32-NEXT: .Ltmp11:
2055 ; SKX_32-NEXT: .Lcfi11:
20562056 ; SKX_32-NEXT: .cfi_offset %ebp, -8
20572057 ; SKX_32-NEXT: movl %esp, %ebp
2058 ; SKX_32-NEXT: .Ltmp12:
2058 ; SKX_32-NEXT: .Lcfi12:
20592059 ; SKX_32-NEXT: .cfi_def_cfa_register %ebp
20602060 ; SKX_32-NEXT: andl $-64, %esp
20612061 ; SKX_32-NEXT: subl $64, %esp
146146 ; SSE-LABEL: memset_256_nonzero_bytes:
147147 ; SSE: # BB#0:
148148 ; SSE-NEXT: pushq %rax
149 ; SSE-NEXT: .Ltmp0:
149 ; SSE-NEXT: .Lcfi0:
150150 ; SSE-NEXT: .cfi_def_cfa_offset 16
151151 ; SSE-NEXT: movl $42, %esi
152152 ; SSE-NEXT: movl $256, %edx # imm = 0x100
5555 ; X32-SSE1-LABEL: merge_2i64_i64_12:
5656 ; X32-SSE1: # BB#0:
5757 ; X32-SSE1-NEXT: pushl %edi
58 ; X32-SSE1-NEXT: .Ltmp0:
58 ; X32-SSE1-NEXT: .Lcfi0:
5959 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
6060 ; X32-SSE1-NEXT: pushl %esi
61 ; X32-SSE1-NEXT: .Ltmp1:
61 ; X32-SSE1-NEXT: .Lcfi1:
6262 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 12
63 ; X32-SSE1-NEXT: .Ltmp2:
63 ; X32-SSE1-NEXT: .Lcfi2:
6464 ; X32-SSE1-NEXT: .cfi_offset %esi, -12
65 ; X32-SSE1-NEXT: .Ltmp3:
65 ; X32-SSE1-NEXT: .Lcfi3:
6666 ; X32-SSE1-NEXT: .cfi_offset %edi, -8
6767 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
6868 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
380380 ; X32-SSE1-LABEL: merge_4i32_i32_23u5:
381381 ; X32-SSE1: # BB#0:
382382 ; X32-SSE1-NEXT: pushl %esi
383 ; X32-SSE1-NEXT: .Ltmp4:
383 ; X32-SSE1-NEXT: .Lcfi4:
384384 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
385 ; X32-SSE1-NEXT: .Ltmp5:
385 ; X32-SSE1-NEXT: .Lcfi5:
386386 ; X32-SSE1-NEXT: .cfi_offset %esi, -8
387387 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
388388 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
530530 ; X32-SSE1-LABEL: merge_8i16_i16_23u567u9:
531531 ; X32-SSE1: # BB#0:
532532 ; X32-SSE1-NEXT: pushl %ebp
533 ; X32-SSE1-NEXT: .Ltmp6:
533 ; X32-SSE1-NEXT: .Lcfi6:
534534 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
535535 ; X32-SSE1-NEXT: pushl %ebx
536 ; X32-SSE1-NEXT: .Ltmp7:
536 ; X32-SSE1-NEXT: .Lcfi7:
537537 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 12
538538 ; X32-SSE1-NEXT: pushl %edi
539 ; X32-SSE1-NEXT: .Ltmp8:
539 ; X32-SSE1-NEXT: .Lcfi8:
540540 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 16
541541 ; X32-SSE1-NEXT: pushl %esi
542 ; X32-SSE1-NEXT: .Ltmp9:
542 ; X32-SSE1-NEXT: .Lcfi9:
543543 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 20
544 ; X32-SSE1-NEXT: .Ltmp10:
544 ; X32-SSE1-NEXT: .Lcfi10:
545545 ; X32-SSE1-NEXT: .cfi_offset %esi, -20
546 ; X32-SSE1-NEXT: .Ltmp11:
546 ; X32-SSE1-NEXT: .Lcfi11:
547547 ; X32-SSE1-NEXT: .cfi_offset %edi, -16
548 ; X32-SSE1-NEXT: .Ltmp12:
548 ; X32-SSE1-NEXT: .Lcfi12:
549549 ; X32-SSE1-NEXT: .cfi_offset %ebx, -12
550 ; X32-SSE1-NEXT: .Ltmp13:
550 ; X32-SSE1-NEXT: .Lcfi13:
551551 ; X32-SSE1-NEXT: .cfi_offset %ebp, -8
552552 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
553553 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
644644 ; X32-SSE1-LABEL: merge_8i16_i16_45u7zzzz:
645645 ; X32-SSE1: # BB#0:
646646 ; X32-SSE1-NEXT: pushl %esi
647 ; X32-SSE1-NEXT: .Ltmp14:
647 ; X32-SSE1-NEXT: .Lcfi14:
648648 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
649 ; X32-SSE1-NEXT: .Ltmp15:
649 ; X32-SSE1-NEXT: .Lcfi15:
650650 ; X32-SSE1-NEXT: .cfi_offset %esi, -8
651651 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
652652 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
698698 ; X32-SSE1-LABEL: merge_16i8_i8_01u3456789ABCDuF:
699699 ; X32-SSE1: # BB#0:
700700 ; X32-SSE1-NEXT: pushl %ebx
701 ; X32-SSE1-NEXT: .Ltmp16:
701 ; X32-SSE1-NEXT: .Lcfi16:
702702 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
703703 ; X32-SSE1-NEXT: subl $12, %esp
704 ; X32-SSE1-NEXT: .Ltmp17:
704 ; X32-SSE1-NEXT: .Lcfi17:
705705 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 20
706 ; X32-SSE1-NEXT: .Ltmp18:
706 ; X32-SSE1-NEXT: .Lcfi18:
707707 ; X32-SSE1-NEXT: .cfi_offset %ebx, -8
708708 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
709709 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
871871 ; X32-SSE1-LABEL: merge_16i8_i8_0123uu67uuuuuzzz:
872872 ; X32-SSE1: # BB#0:
873873 ; X32-SSE1-NEXT: pushl %ebx
874 ; X32-SSE1-NEXT: .Ltmp19:
874 ; X32-SSE1-NEXT: .Lcfi19:
875875 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
876876 ; X32-SSE1-NEXT: pushl %eax
877 ; X32-SSE1-NEXT: .Ltmp20:
877 ; X32-SSE1-NEXT: .Lcfi20:
878878 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 12
879 ; X32-SSE1-NEXT: .Ltmp21:
879 ; X32-SSE1-NEXT: .Lcfi21:
880880 ; X32-SSE1-NEXT: .cfi_offset %ebx, -8
881881 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
882882 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
10051005 ; X32-SSE1-LABEL: merge_2i64_i64_12_volatile:
10061006 ; X32-SSE1: # BB#0:
10071007 ; X32-SSE1-NEXT: pushl %edi
1008 ; X32-SSE1-NEXT: .Ltmp22:
1008 ; X32-SSE1-NEXT: .Lcfi22:
10091009 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 8
10101010 ; X32-SSE1-NEXT: pushl %esi
1011 ; X32-SSE1-NEXT: .Ltmp23:
1011 ; X32-SSE1-NEXT: .Lcfi23:
10121012 ; X32-SSE1-NEXT: .cfi_def_cfa_offset 12
1013 ; X32-SSE1-NEXT: .Ltmp24:
1013 ; X32-SSE1-NEXT: .Lcfi24:
10141014 ; X32-SSE1-NEXT: .cfi_offset %esi, -12
1015 ; X32-SSE1-NEXT: .Ltmp25:
1015 ; X32-SSE1-NEXT: .Lcfi25:
10161016 ; X32-SSE1-NEXT: .cfi_offset %edi, -8
10171017 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
10181018 ; X32-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
3232 !12 = !DILocation(line: 5, column: 1, scope: !4)
3333
3434 ; CHECK: calll .L0$pb
35 ; CHECK-NEXT: .Ltmp3:
35 ; CHECK-NEXT: .Lcfi3:
3636 ; CHECK-NEXT: .cfi_adjust_cfa_offset 4
3737 ; CHECK-NEXT: .L0$pb:
3838 ; CHECK-NEXT: popl
39 ; CHECK-NEXT: .Ltmp4:
39 ; CHECK-NEXT: .Lcfi4:
4040 ; CHECK-NEXT: .cfi_adjust_cfa_offset -4
66 define void @jscall_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
77 entry:
88 ; CHECK-LABEL: jscall_patchpoint_codegen:
9 ; CHECK: Ltmp
9 ; CHECK: Lcfi
1010 ; CHECK: movq %r{{.+}}, (%rsp)
1111 ; CHECK: movq %r{{.+}}, %rax
1212 ; CHECK: Ltmp
1515 ; CHECK: movq %rax, (%rsp)
1616 ; CHECK: callq
1717 ; FAST-LABEL: jscall_patchpoint_codegen:
18 ; FAST: Ltmp
18 ; FAST: Lcfi
1919 ; FAST: movq %r{{.+}}, (%rsp)
2020 ; FAST: movq %r{{.+}}, %rax
2121 ; FAST: Ltmp
3434 define i64 @jscall_patchpoint_codegen2(i64 %callee) {
3535 entry:
3636 ; CHECK-LABEL: jscall_patchpoint_codegen2:
37 ; CHECK: Ltmp
37 ; CHECK: Lcfi
3838 ; CHECK: movq $6, 24(%rsp)
3939 ; CHECK-NEXT: movl $4, 16(%rsp)
4040 ; CHECK-NEXT: movq $2, (%rsp)
4242 ; CHECK-NEXT: movabsq $-559038736, %r11
4343 ; CHECK-NEXT: callq *%r11
4444 ; FAST-LABEL: jscall_patchpoint_codegen2:
45 ; FAST: Ltmp
45 ; FAST: Lcfi
4646 ; FAST: movq $2, (%rsp)
4747 ; FAST-NEXT: movl $4, 16(%rsp)
4848 ; FAST-NEXT: movq $6, 24(%rsp)
5858 define i64 @jscall_patchpoint_codegen3(i64 %callee) {
5959 entry:
6060 ; CHECK-LABEL: jscall_patchpoint_codegen3:
61 ; CHECK: Ltmp
61 ; CHECK: Lcfi
6262 ; CHECK: movq $10, 48(%rsp)
6363 ; CHECK-NEXT: movl $8, 36(%rsp)
6464 ; CHECK-NEXT: movq $6, 24(%rsp)
6868 ; CHECK-NEXT: movabsq $-559038736, %r11
6969 ; CHECK-NEXT: callq *%r11
7070 ; FAST-LABEL: jscall_patchpoint_codegen3:
71 ; FAST: Ltmp
71 ; FAST: Lcfi
7272 ; FAST: movq $2, (%rsp)
7373 ; FAST-NEXT: movl $4, 16(%rsp)
7474 ; FAST-NEXT: movq $6, 24(%rsp)
2222 attributes #0 = { optsize }
2323
2424 ; CHECK-LABEL: x3:
25 ; CHECK: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp4-.L0$pb), %[[REG:.*]]
25 ; CHECK: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb), %[[REG:.*]]
2626 ; CHECK-NEXT: leal x1@TLSGD(,%[[REG]]), %eax
2727 ; CHECK-NEXT: calll ___tls_get_addr@PLT
2828 ; CHECK-NEXT: cmpl $92, (%eax)
88 ; CHECK-LABEL: bar:
99 ; CHECK: # BB#0:
1010 ; CHECK-NEXT: subq $88, %rsp
11 ; CHECK-NEXT: .Ltmp0:
11 ; CHECK-NEXT: .Lcfi0:
1212 ; CHECK-NEXT: .cfi_def_cfa_offset 96
1313 ; CHECK-NEXT: vmovaps %xmm1, {{[0-9]+}}(%rsp) # 16-byte Spill
1414 ; CHECK-NEXT: vextractf32x4 $1, %zmm3, %xmm1
44 ; CHECK-LABEL: makefloat:
55 ; CHECK: # BB#0: # %entry
66 ; CHECK-NEXT: pushq %rbp
7 ; CHECK-NEXT: .Ltmp0:
7 ; CHECK-NEXT: .Lcfi0:
88 ; CHECK-NEXT: .cfi_def_cfa_offset 16
9 ; CHECK-NEXT: .Ltmp1:
9 ; CHECK-NEXT: .Lcfi1:
1010 ; CHECK-NEXT: .cfi_offset %rbp, -16
1111 ; CHECK-NEXT: movq %rsp, %rbp
12 ; CHECK-NEXT: .Ltmp2:
12 ; CHECK-NEXT: .Lcfi2:
1313 ; CHECK-NEXT: .cfi_def_cfa_register %rbp
1414 ; CHECK-NEXT: andq $-64, %rsp
1515 ; CHECK-NEXT: subq $256, %rsp # imm = 0x100
1212 ; CHECK-LABEL: test1_nofp:
1313 ; LINUX: .cfi_escape 0x2e, 0x10
1414 ; LINUX-NEXT: pushl $4
15 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
16 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
17 ; LINUX-NEXT: pushl $3
18 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
19 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
20 ; LINUX-NEXT: pushl $2
21 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
22 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
23 ; LINUX-NEXT: pushl $1
24 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
15 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
16 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
17 ; LINUX-NEXT: pushl $3
18 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
19 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
20 ; LINUX-NEXT: pushl $2
21 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
22 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
23 ; LINUX-NEXT: pushl $1
24 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
2525 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
2626 ; LINUX-NEXT: call
2727 ; LINUX-NEXT: addl $16, %esp
6969 ; CHECK-LABEL: test2_nofp:
7070 ; LINUX-NOT: .cfi_escape
7171 ; LINUX: pushl $4
72 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
73 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
74 ; LINUX-NEXT: pushl $3
75 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
76 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
77 ; LINUX-NEXT: pushl $2
78 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
79 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
80 ; LINUX-NEXT: pushl $1
81 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
72 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
73 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
74 ; LINUX-NEXT: pushl $3
75 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
76 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
77 ; LINUX-NEXT: pushl $2
78 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
79 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
80 ; LINUX-NEXT: pushl $1
81 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
8282 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
8383 ; LINUX-NEXT: call
8484 ; LINUX-NEXT: addl $28, %esp
184184 ; CHECK-LABEL: test5_nofp:
185185 ; LINUX: .cfi_escape 0x2e, 0x10
186186 ; LINUX-NEXT: pushl $4
187 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
188 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
189 ; LINUX-NEXT: pushl $3
190 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
191 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
192 ; LINUX-NEXT: pushl $2
193 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
194 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
195 ; LINUX-NEXT: pushl $1
196 ; LINUX-NEXT: Ltmp{{[0-9]+}}:
187 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
188 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
189 ; LINUX-NEXT: pushl $3
190 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
191 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
192 ; LINUX-NEXT: pushl $2
193 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
194 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
195 ; LINUX-NEXT: pushl $1
196 ; LINUX-NEXT: Lcfi{{[0-9]+}}:
197197 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4
198198 ; LINUX-NEXT: call
199199 ; LINUX-NEXT: addl $16, %esp
3131 ; KNL-32-LABEL: pr26232:
3232 ; KNL-32: # BB#0: # %for_loop599.preheader
3333 ; KNL-32-NEXT: pushl %esi
34 ; KNL-32-NEXT: .Ltmp0:
34 ; KNL-32-NEXT: .Lcfi0:
3535 ; KNL-32-NEXT: .cfi_def_cfa_offset 8
36 ; KNL-32-NEXT: .Ltmp1:
36 ; KNL-32-NEXT: .Lcfi1:
3737 ; KNL-32-NEXT: .cfi_offset %esi, -8
3838 ; KNL-32-NEXT: movl {{[0-9]+}}(%esp), %eax
3939 ; KNL-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
7171
7272 ; Callsites
7373 ; The GC one
74 ; CHECK: .long .Ltmp1-test
74 ; CHECK: .long .Ltmp0-test
7575 ; CHECK: .short 0
7676 ; CHECK: .short 4
7777 ; SmallConstant (0)
100100 ; CHECK: .p2align 3
101101
102102 ; The Deopt one
103 ; CHECK: .long .Ltmp3-test2
103 ; CHECK: .long .Ltmp1-test2
104104 ; CHECK: .short 0
105105 ; CHECK: .short 4
106106 ; SmallConstant (0)
8080 ; Check that an ununsed relocate has no code-generation impact
8181 ; CHECK: pushq %rax
8282 ; CHECK: callq return_i1
83 ; CHECK-NEXT: .Ltmp11:
83 ; CHECK-NEXT: .Ltmp5:
8484 ; CHECK-NEXT: popq %rcx
8585 ; CHECK-NEXT: retq
8686 entry:
6666 ; Check that an ununsed relocate has no code-generation impact
6767 ; CHECK: pushq %rax
6868 ; CHECK: callq return_i1
69 ; CHECK-NEXT: .Ltmp9:
69 ; CHECK-NEXT: .Ltmp4:
7070 ; CHECK-NEXT: popq %rcx
7171 ; CHECK-NEXT: retq
7272 entry:
129129
130130 declare token @llvm.experimental.gc.statepoint.p0f_isVoidi32varargf(i64, i32, void (i32, ...)*, i32, i32, ...)
131131
132 declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(token, i32, i32)
132 declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(token, i32, i32)
99 ; We expect the argument to be passed in an extra register to bar
1010 ; CHECK-LABEL: test1
1111 ; CHECK: pushq %rax
12 ; CHECK-NEXT: Ltmp0:
12 ; CHECK-NEXT: Lcfi0:
1313 ; CHECK-NEXT: .cfi_def_cfa_offset 16
1414 ; CHECK-NEXT: callq _bar
1515 %statepoint_token1 = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @bar, i32 0, i32 2, i32 0, i32 1, i32 %a)
8989 ; CHECK: movl %edi, %ebx
9090 ; CHECK: movl %ebx, 12(%rsp)
9191 ; CHECK-NEXT: callq _baz
92 ; CHECK-NEXT: Ltmp30:
92 ; CHECK-NEXT: Ltmp6:
9393 ; CHECK-NEXT: callq _bar
9494 call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @baz, i32 0, i32 0, i32 0, i32 1, i32 %a)
9595 call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @bar, i32 0, i32 2, i32 0, i32 1, i32 %a)
9797 }
9898
9999
100 ; CHECK: Ltmp1-_test1
100 ; CHECK: Ltmp0-_test1
101101 ; CHECK: .byte 1
102102 ; CHECK-NEXT: .byte 4
103103 ; CHECK-NEXT: .short 5
104104 ; CHECK-NEXT: .long 0
105105
106 ; CHECK: Ltmp7-_test2
106 ; CHECK: Ltmp1-_test2
107107 ; CHECK: .byte 1
108108 ; CHECK-NEXT: .byte 4
109109 ; CHECK-NEXT: .short 6
112112 ; CHECK-NEXT: .byte 4
113113 ; CHECK-NEXT: .short 3
114114 ; CHECK-NEXT: .long 0
115 ; CHECK: Ltmp8-_test2
115 ; CHECK: Ltmp2-_test2
116116 ; CHECK: .byte 1
117117 ; CHECK-NEXT: .byte 4
118118 ; CHECK-NEXT: .short 3
108108
109109 ; Callsites
110110 ; Constant arguments
111 ; CHECK-NEXT: .long .Ltmp1-test
111 ; CHECK-NEXT: .long .Ltmp0-test
112112 ; CHECK: .short 0
113113 ; CHECK: .short 11
114114 ; SmallConstant (0)
180180
181181 ; Callsites
182182 ; Constant arguments
183 ; CHECK-NEXT: .long .Ltmp3-test_derived_arg
183 ; CHECK-NEXT: .long .Ltmp1-test_derived_arg
184184 ; CHECK: .short 0
185185 ; CHECK: .short 11
186186 ; SmallConstant (0)
245245 ; CHECK-NEXT: .quad 237
246246
247247 ; Instruction Offset
248 ; CHECK-NEXT: .long .Ltmp5-test_id
248 ; CHECK-NEXT: .long .Ltmp2-test_id
249249
250250 ; Reserved:
251251 ; CHECK: .short 0
105105
106106 ; CHECK: __LLVM_StackMaps:
107107
108 ; CHECK: .Ltmp1-test
108 ; CHECK: .Ltmp0-test
109109 ; Check for the two spill slots
110110 ; Stack Maps: Loc 3: Indirect 7+0 [encoding: .byte 3, .byte 16, .short 7, .int 0]
111111 ; Stack Maps: Loc 4: Indirect 7+0 [encoding: .byte 3, .byte 16, .short 7, .int 0]
118118 ; CHECK: .short 7
119119 ; CHECK: .long 0
120120
121 ; CHECK: .Ltmp3-test2
121 ; CHECK: .Ltmp1-test2
122122 ; Check for the two spill slots
123123 ; Stack Maps: Loc 3: Indirect 7+16 [encoding: .byte 3, .byte 16, .short 7, .int 16]
124124 ; Stack Maps: Loc 4: Indirect 7+0 [encoding: .byte 3, .byte 16, .short 7, .int 0]
131131 ; CHECK: .short 7
132132 ; CHECK: .long 0
133133
134 ; CHECK: .Ltmp5-test3
134 ; CHECK: .Ltmp2-test3
135135 ; Check for the four spill slots
136136 ; Stack Maps: Loc 3: Indirect 7+16 [encoding: .byte 3, .byte 16, .short 7, .int 16]
137137 ; Stack Maps: Loc 4: Indirect 7+16 [encoding: .byte 3, .byte 16, .short 7, .int 16]
3535 define i32 @f3() {
3636 ; X32-LABEL: f3:
3737 ; X32: calll .L{{[0-9]+}}$pb
38 ; X32-NEXT: .Ltmp{{[0-9]+}}:
38 ; X32-NEXT: .Lcfi{{[0-9]+}}:
3939 ; X32-NEXT: .cfi_adjust_cfa_offset 4
4040 ; X32-NEXT: .L{{[0-9]+}}$pb:
4141 ; X32-NEXT: popl %eax
42 ; X32-NEXT: .Ltmp{{[0-9]+}}:
42 ; X32-NEXT: .Lcfi{{[0-9]+}}:
4343 ; X32-NEXT: .cfi_adjust_cfa_offset -4
4444 ; X32-NEXT: .Ltmp{{[0-9]+}}:
4545 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %eax
5959 define i32* @f4() {
6060 ; X32-LABEL: f4:
6161 ; X32: calll .L{{[0-9]+}}$pb
62 ; X32-NEXT: .Ltmp{{[0-9]+}}:
62 ; X32-NEXT: .Lcfi{{[0-9]+}}:
6363 ; X32-NEXT: .cfi_adjust_cfa_offset 4
6464 ; X32-NEXT: .L{{[0-9]+}}$pb:
6565 ; X32-NEXT: popl %ecx
66 ; X32-NEXT: .Ltmp{{[0-9]+}}:
66 ; X32-NEXT: .Lcfi{{[0-9]+}}:
6767 ; X32-NEXT: .cfi_adjust_cfa_offset -4
6868 ; X32-NEXT: .Ltmp{{[0-9]+}}:
6969 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %ecx
3838 ; CHECK-NEXT: .cfi_startproc
3939 ; CHECK-NEXT: # BB#0: # %entry
4040 ; CHECK-NEXT: pushq %rbp
41 ; CHECK-NEXT: .Ltmp0:
41 ; CHECK-NEXT: .Lcfi0:
4242 ; CHECK-NEXT: .cfi_def_cfa_offset 16
43 ; CHECK-NEXT: .Ltmp1:
43 ; CHECK-NEXT: .Lcfi1:
4444 ; CHECK-NEXT: .cfi_offset %rbp, -16
4545 ; CHECK-NEXT: movq %rsp, %rbp
46 ; CHECK-NEXT: .Ltmp2:
46 ; CHECK-NEXT: .Lcfi2:
4747 ; CHECK-NEXT: .cfi_def_cfa_register %rbp
4848 ; CHECK-NEXT: pushq %rbx
4949 ; CHECK-NEXT: pushq %rax
50 ; CHECK-NEXT: .Ltmp3:
50 ; CHECK-NEXT: .Lcfi3:
5151 ; CHECK-NEXT: .cfi_offset %rbx, -24
5252 ; CHECK-NEXT: data16
5353 ; CHECK-NEXT: leaq i@TLSGD(%rip), %rdi
31913191 ; AVX1-LABEL: load_sext_16i1_to_16i16:
31923192 ; AVX1: # BB#0: # %entry
31933193 ; AVX1-NEXT: pushq %rbp
3194 ; AVX1-NEXT: .Ltmp0:
3194 ; AVX1-NEXT: .Lcfi0:
31953195 ; AVX1-NEXT: .cfi_def_cfa_offset 16
31963196 ; AVX1-NEXT: pushq %r15
3197 ; AVX1-NEXT: .Ltmp1:
3197 ; AVX1-NEXT: .Lcfi1:
31983198 ; AVX1-NEXT: .cfi_def_cfa_offset 24
31993199 ; AVX1-NEXT: pushq %r14
3200 ; AVX1-NEXT: .Ltmp2:
3200 ; AVX1-NEXT: .Lcfi2:
32013201 ; AVX1-NEXT: .cfi_def_cfa_offset 32
32023202 ; AVX1-NEXT: pushq %r13
3203 ; AVX1-NEXT: .Ltmp3:
3203 ; AVX1-NEXT: .Lcfi3:
32043204 ; AVX1-NEXT: .cfi_def_cfa_offset 40
32053205 ; AVX1-NEXT: pushq %r12
3206 ; AVX1-NEXT: .Ltmp4:
3206 ; AVX1-NEXT: .Lcfi4:
32073207 ; AVX1-NEXT: .cfi_def_cfa_offset 48
32083208 ; AVX1-NEXT: pushq %rbx
3209 ; AVX1-NEXT: .Ltmp5:
3209 ; AVX1-NEXT: .Lcfi5:
32103210 ; AVX1-NEXT: .cfi_def_cfa_offset 56
3211 ; AVX1-NEXT: .Ltmp6:
3211 ; AVX1-NEXT: .Lcfi6:
32123212 ; AVX1-NEXT: .cfi_offset %rbx, -56
3213 ; AVX1-NEXT: .Ltmp7:
3213 ; AVX1-NEXT: .Lcfi7:
32143214 ; AVX1-NEXT: .cfi_offset %r12, -48
3215 ; AVX1-NEXT: .Ltmp8:
3215 ; AVX1-NEXT: .Lcfi8:
32163216 ; AVX1-NEXT: .cfi_offset %r13, -40
3217 ; AVX1-NEXT: .Ltmp9:
3217 ; AVX1-NEXT: .Lcfi9:
32183218 ; AVX1-NEXT: .cfi_offset %r14, -32
3219 ; AVX1-NEXT: .Ltmp10:
3219 ; AVX1-NEXT: .Lcfi10:
32203220 ; AVX1-NEXT: .cfi_offset %r15, -24
3221 ; AVX1-NEXT: .Ltmp11:
3221 ; AVX1-NEXT: .Lcfi11:
32223222 ; AVX1-NEXT: .cfi_offset %rbp, -16
32233223 ; AVX1-NEXT: movswq (%rdi), %rax
32243224 ; AVX1-NEXT: movq %rax, %rcx
32943294 ; AVX2-LABEL: load_sext_16i1_to_16i16:
32953295 ; AVX2: # BB#0: # %entry
32963296 ; AVX2-NEXT: pushq %rbp
3297 ; AVX2-NEXT: .Ltmp0:
3297 ; AVX2-NEXT: .Lcfi0:
32983298 ; AVX2-NEXT: .cfi_def_cfa_offset 16
32993299 ; AVX2-NEXT: pushq %r15
3300 ; AVX2-NEXT: .Ltmp1:
3300 ; AVX2-NEXT: .Lcfi1:
33013301 ; AVX2-NEXT: .cfi_def_cfa_offset 24
33023302 ; AVX2-NEXT: pushq %r14
3303 ; AVX2-NEXT: .Ltmp2:
3303 ; AVX2-NEXT: .Lcfi2:
33043304 ; AVX2-NEXT: .cfi_def_cfa_offset 32
33053305 ; AVX2-NEXT: pushq %r13
3306 ; AVX2-NEXT: .Ltmp3:
3306 ; AVX2-NEXT: .Lcfi3:
33073307 ; AVX2-NEXT: .cfi_def_cfa_offset 40
33083308 ; AVX2-NEXT: pushq %r12
3309 ; AVX2-NEXT: .Ltmp4:
3309 ; AVX2-NEXT: .Lcfi4:
33103310 ; AVX2-NEXT: .cfi_def_cfa_offset 48
33113311 ; AVX2-NEXT: pushq %rbx
3312 ; AVX2-NEXT: .Ltmp5:
3312 ; AVX2-NEXT: .Lcfi5:
33133313 ; AVX2-NEXT: .cfi_def_cfa_offset 56
3314 ; AVX2-NEXT: .Ltmp6:
3314 ; AVX2-NEXT: .Lcfi6:
33153315 ; AVX2-NEXT: .cfi_offset %rbx, -56
3316 ; AVX2-NEXT: .Ltmp7:
3316 ; AVX2-NEXT: .Lcfi7:
33173317 ; AVX2-NEXT: .cfi_offset %r12, -48
3318 ; AVX2-NEXT: .Ltmp8:
3318 ; AVX2-NEXT: .Lcfi8:
33193319 ; AVX2-NEXT: .cfi_offset %r13, -40
3320 ; AVX2-NEXT: .Ltmp9:
3320 ; AVX2-NEXT: .Lcfi9:
33213321 ; AVX2-NEXT: .cfi_offset %r14, -32
3322 ; AVX2-NEXT: .Ltmp10:
3322 ; AVX2-NEXT: .Lcfi10:
33233323 ; AVX2-NEXT: .cfi_offset %r15, -24
3324 ; AVX2-NEXT: .Ltmp11:
3324 ; AVX2-NEXT: .Lcfi11:
33253325 ; AVX2-NEXT: .cfi_offset %rbp, -16
33263326 ; AVX2-NEXT: movswq (%rdi), %rax
33273327 ; AVX2-NEXT: movq %rax, %rcx
47714771 ; X32-SSE41-LABEL: sext_2i8_to_i32:
47724772 ; X32-SSE41: # BB#0: # %entry
47734773 ; X32-SSE41-NEXT: pushl %eax
4774 ; X32-SSE41-NEXT: .Ltmp0:
4774 ; X32-SSE41-NEXT: .Lcfi0:
47754775 ; X32-SSE41-NEXT: .cfi_def_cfa_offset 8
47764776 ; X32-SSE41-NEXT: pmovsxbw %xmm0, %xmm0
47774777 ; X32-SSE41-NEXT: movd %xmm0, %eax
3131 ; X32-LABEL: test1:
3232 ; X32: ## BB#0: ## %entry
3333 ; X32-NEXT: pushl %edi
34 ; X32-NEXT: Ltmp0:
34 ; X32-NEXT: Lcfi0:
3535 ; X32-NEXT: .cfi_def_cfa_offset 8
3636 ; X32-NEXT: subl $16, %esp
37 ; X32-NEXT: Ltmp1:
37 ; X32-NEXT: Lcfi1:
3838 ; X32-NEXT: .cfi_def_cfa_offset 24
39 ; X32-NEXT: Ltmp2:
39 ; X32-NEXT: Lcfi2:
4040 ; X32-NEXT: .cfi_offset %edi, -8
4141 ; X32-NEXT: xorps %xmm0, %xmm0
4242 ; X32-NEXT: movlps %xmm0, (%esp)
392392 ; AVX512F-LABEL: shuf64i1_zero:
393393 ; AVX512F: # BB#0:
394394 ; AVX512F-NEXT: pushq %rbp
395 ; AVX512F-NEXT: .Ltmp0:
395 ; AVX512F-NEXT: .Lcfi0:
396396 ; AVX512F-NEXT: .cfi_def_cfa_offset 16
397 ; AVX512F-NEXT: .Ltmp1:
397 ; AVX512F-NEXT: .Lcfi1:
398398 ; AVX512F-NEXT: .cfi_offset %rbp, -16
399399 ; AVX512F-NEXT: movq %rsp, %rbp
400 ; AVX512F-NEXT: .Ltmp2:
400 ; AVX512F-NEXT: .Lcfi2:
401401 ; AVX512F-NEXT: .cfi_def_cfa_register %rbp
402402 ; AVX512F-NEXT: andq $-32, %rsp
403403 ; AVX512F-NEXT: subq $96, %rsp
128128
129129 ; X64-LABEL: nested_cleanup:
130130 ; X64: .Lfunc_begin1:
131 ; X64: .Ltmp13:
131 ; X64: .Ltmp2:
132132 ; X64: movl $1, %ecx
133133 ; X64: callq f
134 ; X64: .Ltmp15:
134 ; X64: .Ltmp4:
135135 ; X64: movl $2, %ecx
136136 ; X64: callq f
137 ; X64: .Ltmp16:
137 ; X64: .Ltmp5:
138138 ; X64: callq "??1Dtor@@QAE@XZ"
139 ; X64: .Ltmp17:
139 ; X64: .Ltmp6:
140140 ; X64: movl $3, %ecx
141141 ; X64: callq f
142 ; X64: .Ltmp18:
142 ; X64: .Ltmp7:
143143
144144 ; X64: "?dtor$[[cleanup_inner:[0-9]+]]@?0?nested_cleanup@4HA":
145145 ; X64: LBB1_[[cleanup_inner]]: # %cleanup.inner{{$}}
184184 ; X64: $ip2state$nested_cleanup:
185185 ; X64-NEXT: .long .Lfunc_begin1@IMGREL
186186 ; X64-NEXT: .long -1
187 ; X64-NEXT: .long .Ltmp13@IMGREL
187 ; X64-NEXT: .long .Ltmp2@IMGREL
188188 ; X64-NEXT: .long 0
189 ; X64-NEXT: .long .Ltmp15@IMGREL
189 ; X64-NEXT: .long .Ltmp4@IMGREL
190190 ; X64-NEXT: .long 1
191 ; X64-NEXT: .long .Ltmp17@IMGREL
191 ; X64-NEXT: .long .Ltmp6@IMGREL
192192 ; X64-NEXT: .long 0
193 ; X64-NEXT: .long .Ltmp18@IMGREL+1
193 ; X64-NEXT: .long .Ltmp7@IMGREL+1
194194 ; X64-NEXT: .long -1
195195
196196 attributes #0 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
0 ; RUN: llc < %s -relocation-model=pic | FileCheck %s
11
22 ; CHECK: calll L0$pb
3 ; CHECK-NEXT: Ltmp{{[0-9]+}}:
3 ; CHECK-NEXT: Lcfi{{[0-9]+}}:
44 ; CHECK-NEXT: .cfi_adjust_cfa_offset 4
55 ; CHECK-NEXT: L0$pb:
66 ; CHECK-NEXT: popl %eax
7 ; CHECK-NEXT: Ltmp{{[0-9]+}}:
7 ; CHECK-NEXT: Lcfi{{[0-9]+}}:
88 ; CHECK-NEXT: .cfi_adjust_cfa_offset -4
99 ; CHECK-NEXT: addl LJTI0_0(,%ecx,4), %eax
1010 ; CHECK-NEXT: jmpl *%eax
6161 ; FP + large frame: spill FP+SR = entsp 2 + 100000
6262 ; CHECKFP-LABEL: f4
6363 ; CHECKFP: entsp 65535
64 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
64 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
6565 ; CHECKFP-NEXT: .cfi_def_cfa_offset 262140
66 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
66 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
6767 ; CHECKFP-NEXT: .cfi_offset 15, 0
6868 ; CHECKFP-NEXT: extsp 34467
69 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
69 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
7070 ; CHECKFP-NEXT: .cfi_def_cfa_offset 400008
7171 ; CHECKFP-NEXT: stw r10, sp[1]
72 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
72 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
7373 ; CHECKFP-NEXT: .cfi_offset 10, -400004
7474 ; CHECKFP-NEXT: ldaw r10, sp[0]
75 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
75 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
7676 ; CHECKFP-NEXT: .cfi_def_cfa_register 10
7777 ; CHECKFP-NEXT: set sp, r10
7878 ; CHECKFP-NEXT: ldw r10, sp[1]
8282 ; !FP + large frame: spill SR+SR = entsp 2 + 100000
8383 ; CHECK-LABEL: f4
8484 ; CHECK: entsp 65535
85 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
85 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
8686 ; CHECK-NEXT: .cfi_def_cfa_offset 262140
87 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
87 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
8888 ; CHECK-NEXT: .cfi_offset 15, 0
8989 ; CHECK-NEXT: extsp 34467
90 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
90 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
9191 ; CHECK-NEXT: .cfi_def_cfa_offset 400008
9292 ; CHECK-NEXT: ldaw sp, sp[65535]
9393 ; CHECK-NEXT: retsp 34467
108108 ; CHECKFP-NEXT: .text
109109 ; CHECKFP-LABEL: f6
110110 ; CHECKFP: entsp 65535
111 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
111 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
112112 ; CHECKFP-NEXT: .cfi_def_cfa_offset 262140
113 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
113 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
114114 ; CHECKFP-NEXT: .cfi_offset 15, 0
115115 ; CHECKFP-NEXT: extsp 65535
116 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
116 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
117117 ; CHECKFP-NEXT: .cfi_def_cfa_offset 524280
118118 ; CHECKFP-NEXT: extsp 65535
119 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
119 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
120120 ; CHECKFP-NEXT: .cfi_def_cfa_offset 786420
121121 ; CHECKFP-NEXT: extsp 3398
122 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
122 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
123123 ; CHECKFP-NEXT: .cfi_def_cfa_offset 800012
124124 ; CHECKFP-NEXT: stw r10, sp[1]
125 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
125 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
126126 ; CHECKFP-NEXT: .cfi_offset 10, -800008
127127 ; CHECKFP-NEXT: ldaw r10, sp[0]
128 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
128 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
129129 ; CHECKFP-NEXT: .cfi_def_cfa_register 10
130130 ; CHECKFP-NEXT: ldw r1, cp[.LCPI[[CNST0]]]
131131 ; CHECKFP-NEXT: stw [[REG:r[4-9]+]], r10[r1]
132 ; CHECKFP-NEXT: .Ltmp{{[0-9]+}}
132 ; CHECKFP-NEXT: .Lcfi{{[0-9]+}}
133133 ; CHECKFP-NEXT: .cfi_offset 4, -4
134134 ; CHECKFP-NEXT: mov [[REG]], r0
135135 ; CHECKFP-NEXT: extsp 1
161161 ; CHECK-NEXT: .text
162162 ; CHECK-LABEL: f6
163163 ; CHECK: entsp 65535
164 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
164 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
165165 ; CHECK-NEXT: .cfi_def_cfa_offset 262140
166 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
166 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
167167 ; CHECK-NEXT: .cfi_offset 15, 0
168168 ; CHECK-NEXT: extsp 65535
169 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
169 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
170170 ; CHECK-NEXT: .cfi_def_cfa_offset 524280
171171 ; CHECK-NEXT: extsp 65535
172 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
172 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
173173 ; CHECK-NEXT: .cfi_def_cfa_offset 786420
174174 ; CHECK-NEXT: extsp 3399
175 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
175 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
176176 ; CHECK-NEXT: .cfi_def_cfa_offset 800016
177177 ; CHECK-NEXT: ldaw r1, sp[0]
178178 ; CHECK-NEXT: ldw r2, cp[.LCPI[[CNST0]]]
179179 ; CHECK-NEXT: stw [[REG:r[4-9]+]], r1[r2]
180 ; CHECK-NEXT: .Ltmp{{[0-9]+}}
180 ; CHECK-NEXT: .Lcfi{{[0-9]+}}
181181 ; CHECK-NEXT: .cfi_offset 4, -4
182182 ; CHECK-NEXT: mov [[REG]], r0
183183 ; CHECK-NEXT: ldaw r0, sp[3]