1 ; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s
3 define dso_local i32 @func(i32 %in) {
5 call void asm sideeffect "", "~{x19}"()
6 switch i32 %in, label %def [
17 call void asm sideeffect "", ""()
30 !llvm.module.flags = !{!0, !1}
32 !0 = !{i32 8, !"branch-target-enforcement", i32 1}
33 !1 = !{i32 8, !"sign-return-address", i32 1}
36 ; CHECK-NEXT: .seh_proc func
37 ; CHECK-NEXT: // %bb.0:
38 ; CHECK-NEXT: hint #34
39 ; CHECK-NEXT: .seh_nop
40 ; CHECK-NEXT: str x19, [sp, #-16]!
41 ; CHECK-NEXT: .seh_save_reg_x x19, 16
42 ; CHECK-NEXT: .seh_endprologue
45 ; CHECK-NEXT: hint #36
49 ; CHECK-NEXT: hint #36
50 ; CHECK-NEXT: mov w0, #2
53 ; CHECK-NEXT: hint #36
54 ; CHECK-NEXT: mov w0, #4
57 ; CHECK-NEXT: hint #36
58 ; CHECK-NEXT: mov w0, #8
60 ; CHECK: .seh_startepilogue
61 ; CHECK-NEXT: ldr x19, [sp], #16
62 ; CHECK-NEXT: .seh_save_reg_x x19, 16
63 ; CHECK-NEXT: .seh_endepilogue
65 ; CHECK-NEXT: .seh_endfunclet