509 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -o - -mtriple=arm64e-apple-macosx %s | FileCheck %s3 4target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"5 6; x16 is not available, shrink-wrapping cannot happen because7; StoreSwiftAsyncContext needs it.8define swifttailcc void @test_async_with_jumptable_x16_clobbered(ptr %src, ptr swiftasync %as) #0 {9; CHECK-LABEL: test_async_with_jumptable_x16_clobbered:10; CHECK: ; %bb.0: ; %entry11; CHECK-NEXT: orr x29, x29, #0x100000000000000012; CHECK-NEXT: sub sp, sp, #3213; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill14; CHECK-NEXT: add x16, sp, #815; CHECK-NEXT: movk x16, #49946, lsl #4816; CHECK-NEXT: mov x17, x2217; CHECK-NEXT: pacdb x17, x1618; CHECK-NEXT: str x17, [sp, #8]19; CHECK-NEXT: add x29, sp, #1620; CHECK-NEXT: .cfi_def_cfa w29, 1621; CHECK-NEXT: .cfi_offset w30, -822; CHECK-NEXT: .cfi_offset w29, -1623; CHECK-NEXT: mov x20, x2224; CHECK-NEXT: mov x22, x025; CHECK-NEXT: ; InlineAsm Start26; CHECK-NEXT: ; InlineAsm End27; CHECK-NEXT: ldr x8, [x0]28; CHECK-NEXT: mov x0, x2029; CHECK-NEXT: cbnz x8, LBB0_230; CHECK-NEXT: ; %bb.1: ; %then.131; CHECK-NEXT: str xzr, [x22]32; CHECK-NEXT: mov x0, x2233; CHECK-NEXT: LBB0_2: ; %exit34; CHECK-NEXT: ; InlineAsm Start35; CHECK-NEXT: ; InlineAsm End36; CHECK-NEXT: bl _foo37; CHECK-NEXT: mov x1, x038; CHECK-NEXT: mov x0, x2039; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload40; CHECK-NEXT: and x29, x29, #0xefffffffffffffff41; CHECK-NEXT: add sp, sp, #3242; CHECK-NEXT: br x143entry:44 %x16 = tail call i64 asm "", "={x16}"()45 %l = load i64, ptr %src, align 846 %c = icmp eq i64 %l, 047 br i1 %c, label %then.1, label %exit48 49then.1:50 store i64 0, ptr %src51 br label %exit52 53exit:54 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]55 tail call void asm sideeffect "", "{x16}"(i64 %x16)56 %r = call i64 @foo(ptr %p)57 %fn = inttoptr i64 %r to ptr58 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)59 ret void60}61 62; x17 is not available, shrink-wrapping cannot happen because63; StoreSwiftAsyncContext needs it.64define swifttailcc void @test_async_with_jumptable_x17_clobbered(ptr %src, ptr swiftasync %as) #0 {65; CHECK-LABEL: test_async_with_jumptable_x17_clobbered:66; CHECK: ; %bb.0: ; %entry67; CHECK-NEXT: orr x29, x29, #0x100000000000000068; CHECK-NEXT: sub sp, sp, #3269; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill70; CHECK-NEXT: add x16, sp, #871; CHECK-NEXT: movk x16, #49946, lsl #4872; CHECK-NEXT: mov x17, x2273; CHECK-NEXT: pacdb x17, x1674; CHECK-NEXT: str x17, [sp, #8]75; CHECK-NEXT: add x29, sp, #1676; CHECK-NEXT: .cfi_def_cfa w29, 1677; CHECK-NEXT: .cfi_offset w30, -878; CHECK-NEXT: .cfi_offset w29, -1679; CHECK-NEXT: mov x20, x2280; CHECK-NEXT: mov x22, x081; CHECK-NEXT: ; InlineAsm Start82; CHECK-NEXT: ; InlineAsm End83; CHECK-NEXT: ldr x8, [x0]84; CHECK-NEXT: mov x0, x2085; CHECK-NEXT: cbnz x8, LBB1_286; CHECK-NEXT: ; %bb.1: ; %then.187; CHECK-NEXT: str xzr, [x22]88; CHECK-NEXT: mov x0, x2289; CHECK-NEXT: LBB1_2: ; %exit90; CHECK-NEXT: ; InlineAsm Start91; CHECK-NEXT: ; InlineAsm End92; CHECK-NEXT: bl _foo93; CHECK-NEXT: mov x1, x094; CHECK-NEXT: mov x0, x2095; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload96; CHECK-NEXT: and x29, x29, #0xefffffffffffffff97; CHECK-NEXT: add sp, sp, #3298; CHECK-NEXT: br x199entry:100 %x17 = tail call i64 asm "", "={x17}"()101 %l = load i64, ptr %src, align 8102 %c = icmp eq i64 %l, 0103 br i1 %c, label %then.1, label %exit104 105then.1:106 store i64 0, ptr %src107 br label %exit108 109exit:110 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]111 tail call void asm sideeffect "", "{x17}"(i64 %x17)112 %r = call i64 @foo(ptr %p)113 %fn = inttoptr i64 %r to ptr114 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)115 ret void116}117 118define swifttailcc void @test_async_with_jumptable_x1_clobbered(ptr %src, ptr swiftasync %as) #0 {119; CHECK-LABEL: test_async_with_jumptable_x1_clobbered:120; CHECK: ; %bb.0: ; %entry121; CHECK-NEXT: mov x20, x22122; CHECK-NEXT: mov x22, x0123; CHECK-NEXT: ; InlineAsm Start124; CHECK-NEXT: ; InlineAsm End125; CHECK-NEXT: ldr x8, [x0]126; CHECK-NEXT: mov x0, x20127; CHECK-NEXT: cbnz x8, LBB2_2128; CHECK-NEXT: ; %bb.1: ; %then.1129; CHECK-NEXT: str xzr, [x22]130; CHECK-NEXT: mov x0, x22131; CHECK-NEXT: LBB2_2: ; %exit132; CHECK-NEXT: orr x29, x29, #0x1000000000000000133; CHECK-NEXT: sub sp, sp, #32134; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill135; CHECK-NEXT: add x16, sp, #8136; CHECK-NEXT: movk x16, #49946, lsl #48137; CHECK-NEXT: mov x17, x22138; CHECK-NEXT: pacdb x17, x16139; CHECK-NEXT: str x17, [sp, #8]140; CHECK-NEXT: add x29, sp, #16141; CHECK-NEXT: .cfi_def_cfa w29, 16142; CHECK-NEXT: .cfi_offset w30, -8143; CHECK-NEXT: .cfi_offset w29, -16144; CHECK-NEXT: ; InlineAsm Start145; CHECK-NEXT: ; InlineAsm End146; CHECK-NEXT: bl _foo147; CHECK-NEXT: mov x1, x0148; CHECK-NEXT: mov x0, x20149; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload150; CHECK-NEXT: and x29, x29, #0xefffffffffffffff151; CHECK-NEXT: add sp, sp, #32152; CHECK-NEXT: br x1153entry:154 %x1 = tail call i64 asm "", "={x1}"()155 %l = load i64, ptr %src, align 8156 %c = icmp eq i64 %l, 0157 br i1 %c, label %then.1, label %exit158 159then.1:160 store i64 0, ptr %src161 br label %exit162 163exit:164 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]165 tail call void asm sideeffect "", "{x1}"(i64 %x1)166 %r = call i64 @foo(ptr %p)167 %fn = inttoptr i64 %r to ptr168 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)169 ret void170}171 172define swifttailcc void @test_async_with_jumptable_x1_x9_clobbered(ptr %src, ptr swiftasync %as) #0 {173; CHECK-LABEL: test_async_with_jumptable_x1_x9_clobbered:174; CHECK: ; %bb.0: ; %entry175; CHECK-NEXT: mov x20, x22176; CHECK-NEXT: mov x22, x0177; CHECK-NEXT: ; InlineAsm Start178; CHECK-NEXT: ; InlineAsm End179; CHECK-NEXT: ; InlineAsm Start180; CHECK-NEXT: ; InlineAsm End181; CHECK-NEXT: ldr x8, [x0]182; CHECK-NEXT: mov x0, x20183; CHECK-NEXT: cbnz x8, LBB3_2184; CHECK-NEXT: ; %bb.1: ; %then.1185; CHECK-NEXT: str xzr, [x22]186; CHECK-NEXT: mov x0, x22187; CHECK-NEXT: LBB3_2: ; %exit188; CHECK-NEXT: orr x29, x29, #0x1000000000000000189; CHECK-NEXT: sub sp, sp, #32190; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill191; CHECK-NEXT: add x16, sp, #8192; CHECK-NEXT: movk x16, #49946, lsl #48193; CHECK-NEXT: mov x17, x22194; CHECK-NEXT: pacdb x17, x16195; CHECK-NEXT: str x17, [sp, #8]196; CHECK-NEXT: add x29, sp, #16197; CHECK-NEXT: .cfi_def_cfa w29, 16198; CHECK-NEXT: .cfi_offset w30, -8199; CHECK-NEXT: .cfi_offset w29, -16200; CHECK-NEXT: ; InlineAsm Start201; CHECK-NEXT: ; InlineAsm End202; CHECK-NEXT: ; InlineAsm Start203; CHECK-NEXT: ; InlineAsm End204; CHECK-NEXT: bl _foo205; CHECK-NEXT: mov x1, x0206; CHECK-NEXT: mov x0, x20207; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload208; CHECK-NEXT: and x29, x29, #0xefffffffffffffff209; CHECK-NEXT: add sp, sp, #32210; CHECK-NEXT: br x1211entry:212 %x1 = tail call i64 asm "", "={x1}"()213 %x9 = tail call i64 asm "", "={x9}"()214 %l = load i64, ptr %src, align 8215 %c = icmp eq i64 %l, 0216 br i1 %c, label %then.1, label %exit217 218then.1:219 store i64 0, ptr %src220 br label %exit221 222exit:223 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]224 tail call void asm sideeffect "", "{x1}"(i64 %x1)225 tail call void asm sideeffect "", "{x9}"(i64 %x9)226 %r = call i64 @foo(ptr %p)227 %fn = inttoptr i64 %r to ptr228 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)229 ret void230}231 232; There are 2 available scratch registers left, shrink-wrapping can happen.233define swifttailcc void @test_async_with_jumptable_2_available_regs_left(ptr %src, ptr swiftasync %as) #0 {234; CHECK-LABEL: test_async_with_jumptable_2_available_regs_left:235; CHECK: ; %bb.0: ; %entry236; CHECK-NEXT: mov x20, x22237; CHECK-NEXT: mov x22, x0238; CHECK-NEXT: ; InlineAsm Start239; CHECK-NEXT: ; InlineAsm End240; CHECK-NEXT: ; InlineAsm Start241; CHECK-NEXT: ; InlineAsm End242; CHECK-NEXT: ; InlineAsm Start243; CHECK-NEXT: ; InlineAsm End244; CHECK-NEXT: ; InlineAsm Start245; CHECK-NEXT: ; InlineAsm End246; CHECK-NEXT: ; InlineAsm Start247; CHECK-NEXT: ; InlineAsm End248; CHECK-NEXT: ; InlineAsm Start249; CHECK-NEXT: ; InlineAsm End250; CHECK-NEXT: ; InlineAsm Start251; CHECK-NEXT: ; InlineAsm End252; CHECK-NEXT: ; InlineAsm Start253; CHECK-NEXT: ; InlineAsm End254; CHECK-NEXT: ; InlineAsm Start255; CHECK-NEXT: ; InlineAsm End256; CHECK-NEXT: ; InlineAsm Start257; CHECK-NEXT: ; InlineAsm End258; CHECK-NEXT: ; InlineAsm Start259; CHECK-NEXT: ; InlineAsm End260; CHECK-NEXT: ; InlineAsm Start261; CHECK-NEXT: ; InlineAsm End262; CHECK-NEXT: ; InlineAsm Start263; CHECK-NEXT: ; InlineAsm End264; CHECK-NEXT: ; InlineAsm Start265; CHECK-NEXT: ; InlineAsm End266; CHECK-NEXT: mov x0, x20267; CHECK-NEXT: ldr x10, [x22]268; CHECK-NEXT: cbnz x10, LBB4_2269; CHECK-NEXT: ; %bb.1: ; %then.1270; CHECK-NEXT: str xzr, [x22]271; CHECK-NEXT: mov x0, x22272; CHECK-NEXT: LBB4_2: ; %exit273; CHECK-NEXT: orr x29, x29, #0x1000000000000000274; CHECK-NEXT: sub sp, sp, #32275; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill276; CHECK-NEXT: add x16, sp, #8277; CHECK-NEXT: movk x16, #49946, lsl #48278; CHECK-NEXT: mov x17, x22279; CHECK-NEXT: pacdb x17, x16280; CHECK-NEXT: str x17, [sp, #8]281; CHECK-NEXT: add x29, sp, #16282; CHECK-NEXT: .cfi_def_cfa w29, 16283; CHECK-NEXT: .cfi_offset w30, -8284; CHECK-NEXT: .cfi_offset w29, -16285; CHECK-NEXT: ; InlineAsm Start286; CHECK-NEXT: ; InlineAsm End287; CHECK-NEXT: ; InlineAsm Start288; CHECK-NEXT: ; InlineAsm End289; CHECK-NEXT: ; InlineAsm Start290; CHECK-NEXT: ; InlineAsm End291; CHECK-NEXT: ; InlineAsm Start292; CHECK-NEXT: ; InlineAsm End293; CHECK-NEXT: ; InlineAsm Start294; CHECK-NEXT: ; InlineAsm End295; CHECK-NEXT: ; InlineAsm Start296; CHECK-NEXT: ; InlineAsm End297; CHECK-NEXT: ; InlineAsm Start298; CHECK-NEXT: ; InlineAsm End299; CHECK-NEXT: ; InlineAsm Start300; CHECK-NEXT: ; InlineAsm End301; CHECK-NEXT: ; InlineAsm Start302; CHECK-NEXT: ; InlineAsm End303; CHECK-NEXT: ; InlineAsm Start304; CHECK-NEXT: ; InlineAsm End305; CHECK-NEXT: ; InlineAsm Start306; CHECK-NEXT: ; InlineAsm End307; CHECK-NEXT: ; InlineAsm Start308; CHECK-NEXT: ; InlineAsm End309; CHECK-NEXT: ; InlineAsm Start310; CHECK-NEXT: ; InlineAsm End311; CHECK-NEXT: ; InlineAsm Start312; CHECK-NEXT: ; InlineAsm End313; CHECK-NEXT: bl _foo314; CHECK-NEXT: mov x1, x0315; CHECK-NEXT: mov x0, x20316; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload317; CHECK-NEXT: and x29, x29, #0xefffffffffffffff318; CHECK-NEXT: add sp, sp, #32319; CHECK-NEXT: br x1320entry:321 %x1 = tail call i64 asm "", "={x1}"()322 %x2 = tail call i64 asm "", "={x2}"()323 %x3 = tail call i64 asm "", "={x3}"()324 %x4 = tail call i64 asm "", "={x4}"()325 %x5 = tail call i64 asm "", "={x5}"()326 %x6 = tail call i64 asm "", "={x6}"()327 %x7 = tail call i64 asm "", "={x7}"()328 %x8 = tail call i64 asm "", "={x8}"()329 %x9 = tail call i64 asm "", "={x9}"()330 %x11 = tail call i64 asm "", "={x11}"()331 %x12 = tail call i64 asm "", "={x12}"()332 %x13 = tail call i64 asm "", "={x13}"()333 %x14 = tail call i64 asm "", "={x14}"()334 %x15 = tail call i64 asm "", "={x15}"()335 %l = load i64, ptr %src, align 8336 %c = icmp eq i64 %l, 0337 br i1 %c, label %then.1, label %exit338 339then.1:340 store i64 0, ptr %src341 br label %exit342 343exit:344 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]345 tail call void asm sideeffect "", "{x1}"(i64 %x1)346 tail call void asm sideeffect "", "{x2}"(i64 %x2)347 tail call void asm sideeffect "", "{x3}"(i64 %x3)348 tail call void asm sideeffect "", "{x4}"(i64 %x4)349 tail call void asm sideeffect "", "{x5}"(i64 %x5)350 tail call void asm sideeffect "", "{x6}"(i64 %x6)351 tail call void asm sideeffect "", "{x7}"(i64 %x7)352 tail call void asm sideeffect "", "{x8}"(i64 %x8)353 tail call void asm sideeffect "", "{x9}"(i64 %x9)354 tail call void asm sideeffect "", "{x11}"(i64 %x11)355 tail call void asm sideeffect "", "{x12}"(i64 %x12)356 tail call void asm sideeffect "", "{x13}"(i64 %x13)357 tail call void asm sideeffect "", "{x14}"(i64 %x14)358 tail call void asm sideeffect "", "{x15}"(i64 %x15)359 %r = call i64 @foo(ptr %p)360 %fn = inttoptr i64 %r to ptr361 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)362 ret void363}364 365 366; There is only 1 available scratch registers left, shrink-wrapping cannot367; happen because StoreSwiftAsyncContext needs 2 free scratch registers.368define swifttailcc void @test_async_with_jumptable_1_available_reg_left(ptr %src, ptr swiftasync %as) #0 {369; CHECK-LABEL: test_async_with_jumptable_1_available_reg_left:370; CHECK: ; %bb.0: ; %entry371; CHECK-NEXT: orr x29, x29, #0x1000000000000000372; CHECK-NEXT: sub sp, sp, #32373; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill374; CHECK-NEXT: add x16, sp, #8375; CHECK-NEXT: movk x16, #49946, lsl #48376; CHECK-NEXT: mov x17, x22377; CHECK-NEXT: pacdb x17, x16378; CHECK-NEXT: str x17, [sp, #8]379; CHECK-NEXT: add x29, sp, #16380; CHECK-NEXT: .cfi_def_cfa w29, 16381; CHECK-NEXT: .cfi_offset w30, -8382; CHECK-NEXT: .cfi_offset w29, -16383; CHECK-NEXT: mov x20, x22384; CHECK-NEXT: mov x22, x0385; CHECK-NEXT: ; InlineAsm Start386; CHECK-NEXT: ; InlineAsm End387; CHECK-NEXT: ; InlineAsm Start388; CHECK-NEXT: ; InlineAsm End389; CHECK-NEXT: ; InlineAsm Start390; CHECK-NEXT: ; InlineAsm End391; CHECK-NEXT: ; InlineAsm Start392; CHECK-NEXT: ; InlineAsm End393; CHECK-NEXT: ; InlineAsm Start394; CHECK-NEXT: ; InlineAsm End395; CHECK-NEXT: ; InlineAsm Start396; CHECK-NEXT: ; InlineAsm End397; CHECK-NEXT: ; InlineAsm Start398; CHECK-NEXT: ; InlineAsm End399; CHECK-NEXT: ; InlineAsm Start400; CHECK-NEXT: ; InlineAsm End401; CHECK-NEXT: ; InlineAsm Start402; CHECK-NEXT: ; InlineAsm End403; CHECK-NEXT: ; InlineAsm Start404; CHECK-NEXT: ; InlineAsm End405; CHECK-NEXT: ; InlineAsm Start406; CHECK-NEXT: ; InlineAsm End407; CHECK-NEXT: ; InlineAsm Start408; CHECK-NEXT: ; InlineAsm End409; CHECK-NEXT: ; InlineAsm Start410; CHECK-NEXT: ; InlineAsm End411; CHECK-NEXT: ; InlineAsm Start412; CHECK-NEXT: ; InlineAsm End413; CHECK-NEXT: ; InlineAsm Start414; CHECK-NEXT: ; InlineAsm End415; CHECK-NEXT: mov x0, x20416; CHECK-NEXT: ldr x10, [x22]417; CHECK-NEXT: cbnz x10, LBB5_2418; CHECK-NEXT: ; %bb.1: ; %then.1419; CHECK-NEXT: str xzr, [x22]420; CHECK-NEXT: mov x0, x22421; CHECK-NEXT: LBB5_2: ; %exit422; CHECK-NEXT: ; InlineAsm Start423; CHECK-NEXT: ; InlineAsm End424; CHECK-NEXT: ; InlineAsm Start425; CHECK-NEXT: ; InlineAsm End426; CHECK-NEXT: ; InlineAsm Start427; CHECK-NEXT: ; InlineAsm End428; CHECK-NEXT: ; InlineAsm Start429; CHECK-NEXT: ; InlineAsm End430; CHECK-NEXT: ; InlineAsm Start431; CHECK-NEXT: ; InlineAsm End432; CHECK-NEXT: ; InlineAsm Start433; CHECK-NEXT: ; InlineAsm End434; CHECK-NEXT: ; InlineAsm Start435; CHECK-NEXT: ; InlineAsm End436; CHECK-NEXT: ; InlineAsm Start437; CHECK-NEXT: ; InlineAsm End438; CHECK-NEXT: ; InlineAsm Start439; CHECK-NEXT: ; InlineAsm End440; CHECK-NEXT: ; InlineAsm Start441; CHECK-NEXT: ; InlineAsm End442; CHECK-NEXT: ; InlineAsm Start443; CHECK-NEXT: ; InlineAsm End444; CHECK-NEXT: ; InlineAsm Start445; CHECK-NEXT: ; InlineAsm End446; CHECK-NEXT: ; InlineAsm Start447; CHECK-NEXT: ; InlineAsm End448; CHECK-NEXT: ; InlineAsm Start449; CHECK-NEXT: ; InlineAsm End450; CHECK-NEXT: ; InlineAsm Start451; CHECK-NEXT: ; InlineAsm End452; CHECK-NEXT: bl _foo453; CHECK-NEXT: mov x1, x0454; CHECK-NEXT: mov x0, x20455; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload456; CHECK-NEXT: and x29, x29, #0xefffffffffffffff457; CHECK-NEXT: add sp, sp, #32458; CHECK-NEXT: br x1459entry:460 %x1 = tail call i64 asm "", "={x1}"()461 %x2 = tail call i64 asm "", "={x2}"()462 %x3 = tail call i64 asm "", "={x3}"()463 %x4 = tail call i64 asm "", "={x4}"()464 %x5 = tail call i64 asm "", "={x5}"()465 %x6 = tail call i64 asm "", "={x6}"()466 %x7 = tail call i64 asm "", "={x7}"()467 %x8 = tail call i64 asm "", "={x8}"()468 %x9 = tail call i64 asm "", "={x9}"()469 %x11 = tail call i64 asm "", "={x11}"()470 %x12 = tail call i64 asm "", "={x12}"()471 %x13 = tail call i64 asm "", "={x13}"()472 %x14 = tail call i64 asm "", "={x14}"()473 %x15 = tail call i64 asm "", "={x15}"()474 %x16 = tail call i64 asm "", "={x16}"()475 %l = load i64, ptr %src, align 8476 %c = icmp eq i64 %l, 0477 br i1 %c, label %then.1, label %exit478 479then.1:480 store i64 0, ptr %src481 br label %exit482 483exit:484 %p = phi ptr [ %src, %then.1 ], [ %as, %entry ]485 tail call void asm sideeffect "", "{x1}"(i64 %x1)486 tail call void asm sideeffect "", "{x2}"(i64 %x2)487 tail call void asm sideeffect "", "{x3}"(i64 %x3)488 tail call void asm sideeffect "", "{x4}"(i64 %x4)489 tail call void asm sideeffect "", "{x5}"(i64 %x5)490 tail call void asm sideeffect "", "{x6}"(i64 %x6)491 tail call void asm sideeffect "", "{x7}"(i64 %x7)492 tail call void asm sideeffect "", "{x8}"(i64 %x8)493 tail call void asm sideeffect "", "{x9}"(i64 %x9)494 tail call void asm sideeffect "", "{x11}"(i64 %x11)495 tail call void asm sideeffect "", "{x12}"(i64 %x12)496 tail call void asm sideeffect "", "{x13}"(i64 %x13)497 tail call void asm sideeffect "", "{x14}"(i64 %x14)498 tail call void asm sideeffect "", "{x15}"(i64 %x15)499 tail call void asm sideeffect "", "{x16}"(i64 %x16)500 %r = call i64 @foo(ptr %p)501 %fn = inttoptr i64 %r to ptr502 musttail call swifttailcc void %fn(ptr swiftasync %src, ptr %as)503 ret void504}505 506declare i64 @foo(ptr)507 508attributes #0 = { "frame-pointer"="non-leaf" }509