[ELF] Reorder SectionBase/InputSectionBase members
[llvm-project.git] / llvm / test / CodeGen / AArch64 / wineh-bti.ll
blob8b8960d37f9ef507bbb28f8b24617d5d0836a6eb
1 ; RUN: llc < %s -mtriple=aarch64-windows -aarch64-min-jump-table-entries=4 | FileCheck %s
3 define dso_local i32 @func(i32 %in) "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" "branch-target-enforcement" {
4 entry:
5   call void asm sideeffect "", "~{x19}"()
6   switch i32 %in, label %def [
7     i32 0, label %lbl1
8     i32 1, label %lbl2
9     i32 2, label %lbl3
10     i32 4, label %lbl4
11   ]
13 def:
14   ret i32 0
16 lbl1:
17   call void asm sideeffect "", ""()
18   ret i32 1
20 lbl2:
21   ret i32 2
23 lbl3:
24   ret i32 4
26 lbl4:
27   ret i32 8
30 ; CHECK-LABEL: func:
31 ; CHECK-NEXT: .seh_proc func
32 ; CHECK-NEXT: // %bb.0:
33 ; CHECK-NEXT: hint #34
34 ; CHECK-NEXT: .seh_nop
35 ; CHECK-NEXT: str x19, [sp, #-16]!
36 ; CHECK-NEXT: .seh_save_reg_x x19, 16
37 ; CHECK-NEXT: .seh_endprologue
39 ; CHECK:      .LBB0_2:
40 ; CHECK-NEXT: hint #36
41 ; CHECK: mov w0, #1
43 ; CHECK:      .LBB0_3:
44 ; CHECK-NEXT: hint #36
45 ; CHECK-NEXT: mov w0, #4
47 ; CHECK:      .LBB0_4:
48 ; CHECK-NEXT: hint #36
49 ; CHECK-NEXT: mov w0, #2
51 ; CHECK:      .LBB0_5:
52 ; CHECK-NEXT: hint #36
53 ; CHECK-NEXT: mov w0, #8
55 ; CHECK:      .seh_startepilogue
56 ; CHECK-NEXT: ldr x19, [sp], #16
57 ; CHECK-NEXT: .seh_save_reg_x x19, 16
58 ; CHECK-NEXT: .seh_endepilogue
59 ; CHECK-NEXT: ret
60 ; CHECK-NEXT: .seh_endfunclet