@@ -1560,3 +1560,53 @@ define tailcc void @f15(double %d, <vscale x 4 x i32> %vs, [9 x i64], i32 %i) {
1560
1560
store i32 %i , ptr %a
1561
1561
ret void
1562
1562
}
1563
+
1564
+ declare ptr @llvm.swift.async.context.addr ()
1565
+
1566
+ define void @f16 (ptr swiftasync %ctx , <vscale x 2 x i64 > %foo ) {
1567
+ ; CHECK-LABEL: f16:
1568
+ ; CHECK: .seh_proc f16
1569
+ ; CHECK-NEXT: // %bb.0:
1570
+ ; CHECK-NEXT: orr x29, x29, #0x1000000000000000
1571
+ ; CHECK-NEXT: .seh_nop
1572
+ ; CHECK-NEXT: addvl sp, sp, #-1
1573
+ ; CHECK-NEXT: .seh_allocz 1
1574
+ ; CHECK-NEXT: str z8, [sp] // 16-byte Folded Spill
1575
+ ; CHECK-NEXT: .seh_save_zreg z8, 0
1576
+ ; CHECK-NEXT: sub sp, sp, #32
1577
+ ; CHECK-NEXT: .seh_stackalloc 32
1578
+ ; CHECK-NEXT: stp x29, x30, [sp, #8] // 16-byte Folded Spill
1579
+ ; CHECK-NEXT: .seh_save_fplr 8
1580
+ ; CHECK-NEXT: str x22, [sp]
1581
+ ; CHECK-NEXT: .seh_nop
1582
+ ; CHECK-NEXT: add x29, sp, #8
1583
+ ; CHECK-NEXT: .seh_add_fp 8
1584
+ ; CHECK-NEXT: .seh_endprologue
1585
+ ; CHECK-NEXT: sub sp, sp, #16
1586
+ ; CHECK-NEXT: //APP
1587
+ ; CHECK-NEXT: //NO_APP
1588
+ ; CHECK-NEXT: ldr x8, [x22]
1589
+ ; CHECK-NEXT: stur x8, [x29, #-8]
1590
+ ; CHECK-NEXT: .seh_startepilogue
1591
+ ; CHECK-NEXT: add sp, sp, #16
1592
+ ; CHECK-NEXT: .seh_stackalloc 16
1593
+ ; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload
1594
+ ; CHECK-NEXT: add sp, sp, #32
1595
+ ; CHECK-NEXT: .seh_stackalloc 32
1596
+ ; CHECK-NEXT: .seh_save_fplr 8
1597
+ ; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1598
+ ; CHECK-NEXT: .seh_save_zreg z8, 0
1599
+ ; CHECK-NEXT: and x29, x29, #0xefffffffffffffff
1600
+ ; CHECK-NEXT: .seh_nop
1601
+ ; CHECK-NEXT: addvl sp, sp, #1
1602
+ ; CHECK-NEXT: .seh_allocz 1
1603
+ ; CHECK-NEXT: .seh_endepilogue
1604
+ ; CHECK-NEXT: ret
1605
+ ; CHECK-NEXT: .seh_endfunclet
1606
+ ; CHECK-NEXT: .seh_endproc
1607
+ tail call void asm sideeffect "" , "~{z8}" ()
1608
+ %1 = load ptr , ptr %ctx , align 8
1609
+ %2 = tail call ptr @llvm.swift.async.context.addr ()
1610
+ store ptr %1 , ptr %2 , align 8
1611
+ ret void
1612
+ }
0 commit comments