61 lines · plain
1; RUN: llc < %s -mtriple=aarch64-windows -aarch64-min-jump-table-entries=4 | FileCheck %s2 3define dso_local i32 @func(i32 %in) "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" "branch-target-enforcement" {4entry:5 call void asm sideeffect "", "~{x19}"()6 switch i32 %in, label %def [7 i32 0, label %lbl18 i32 1, label %lbl29 i32 2, label %lbl310 i32 4, label %lbl411 ]12 13def:14 ret i32 015 16lbl1:17 call void asm sideeffect "", ""()18 ret i32 119 20lbl2:21 ret i32 222 23lbl3:24 ret i32 425 26lbl4:27 ret i32 828}29 30; CHECK-LABEL: func:31; CHECK-NEXT: .seh_proc func32; CHECK: // %bb.0: // %entry33; CHECK-NEXT: hint #3434; CHECK-NEXT: .seh_nop35; CHECK-NEXT: str x19, [sp, #-16]!36; CHECK-NEXT: .seh_save_reg_x x19, 1637; CHECK-NEXT: .seh_endprologue38 39; CHECK: .LBB0_2:40; CHECK-NEXT: hint #3641; CHECK: mov w0, #142 43; CHECK: .LBB0_3:44; CHECK-NEXT: hint #3645; CHECK-NEXT: mov w0, #446 47; CHECK: .LBB0_4:48; CHECK-NEXT: hint #3649; CHECK-NEXT: mov w0, #250 51; CHECK: .LBB0_5:52; CHECK-NEXT: hint #3653; CHECK-NEXT: mov w0, #854 55; CHECK: .seh_startepilogue56; CHECK-NEXT: ldr x19, [sp], #1657; CHECK-NEXT: .seh_save_reg_x x19, 1658; CHECK-NEXT: .seh_endepilogue59; CHECK-NEXT: ret60; CHECK-NEXT: .seh_endfunclet61