1; RUN: llc -mtriple=aarch64 %s -o - | FileCheck --check-prefixes=CHECK %s 2 3define void @f0() "patchable-function-entry"="0" "branch-target-enforcement" { 4; CHECK-LABEL: f0: 5; CHECK-NEXT: .Lfunc_begin0: 6; CHECK: // %bb.0: 7; CHECK-NEXT: hint #34 8; CHECK-NEXT: ret 9; CHECK-NOT: .section __patchable_function_entries 10 ret void 11} 12 13;; -fpatchable-function-entry=1 -mbranch-protection=bti 14define void @f1() "patchable-function-entry"="1" "branch-target-enforcement" { 15; CHECK-LABEL: f1: 16; CHECK-NEXT: .Lfunc_begin1: 17; CHECK: hint #34 18; CHECK-NEXT: nop 19; CHECK-NEXT: ret 20; CHECK: .section __patchable_function_entries,"awo",@progbits,f1,unique,0 21; CHECK-NEXT: .p2align 3 22; CHECK-NEXT: .xword .Lfunc_begin1 23 ret void 24} 25 26;; -fpatchable-function-entry=2,1 -mbranch-protection=bti 27define void @f2_1() "patchable-function-entry"="1" "patchable-function-prefix"="1" "branch-target-enforcement" { 28; CHECK-LABEL: .type f2_1,@function 29; CHECK-NEXT: .Ltmp0: 30; CHECK-NEXT: nop 31; CHECK-NEXT: f2_1: 32; CHECK-NEXT: .Lfunc_begin2: 33; CHECK: // %bb.0: 34; CHECK-NEXT: hint #34 35; CHECK-NEXT: nop 36; CHECK-NEXT: ret 37; CHECK: .Lfunc_end2: 38; CHECK-NEXT: .size f2_1, .Lfunc_end2-f2_1 39; CHECK: .section __patchable_function_entries,"awo",@progbits,f1,unique,0 40; CHECK-NEXT: .p2align 3 41; CHECK-NEXT: .xword .Ltmp0 42 ret void 43} 44