1; Check the basic block sections labels option
2; RUN: llc < %s -mtriple=x86_64 -function-sections -basic-block-sections=labels | FileCheck %s
3
4define void @_Z3bazb(i1 zeroext) personality i32 (...)* @__gxx_personality_v0 {
5  br i1 %0, label %2, label %7
6
72:
8  %3 = invoke i32 @_Z3barv()
9          to label %7 unwind label %5
10  br label %9
11
125:
13  landingpad { i8*, i32 }
14          catch i8* null
15  br label %9
16
177:
18  %8 = call i32 @_Z3foov()
19  br label %9
20
219:
22  ret void
23}
24
25declare i32 @_Z3barv() #1
26
27declare i32 @_Z3foov() #1
28
29declare i32 @__gxx_personality_v0(...)
30
31; CHECK-LABEL:	_Z3bazb:
32; CHECK-LABEL:	.Lfunc_begin0:
33; CHECK-LABEL:	.LBB_END0_0:
34; CHECK-LABEL:	.LBB0_1:
35; CHECK-LABEL:	.LBB_END0_1:
36; CHECK-LABEL:	.LBB0_2:
37; CHECK-LABEL:	.LBB_END0_2:
38; CHECK-LABEL:	.LBB0_3:
39; CHECK-LABEL:	.LBB_END0_3:
40; CHECK-LABEL:	.Lfunc_end0:
41
42; CHECK:	.section	.llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text
43; CHECK-NEXT:	.quad	.Lfunc_begin0
44; CHECK-NEXT:	.byte	4
45; CHECK-NEXT:	.uleb128 .Lfunc_begin0-.Lfunc_begin0
46; CHECK-NEXT:	.uleb128 .LBB_END0_0-.Lfunc_begin0
47; CHECK-NEXT:	.byte	0
48; CHECK-NEXT:	.uleb128 .LBB0_1-.Lfunc_begin0
49; CHECK-NEXT:	.uleb128 .LBB_END0_1-.LBB0_1
50; CHECK-NEXT:	.byte	0
51; CHECK-NEXT:	.uleb128 .LBB0_2-.Lfunc_begin0
52; CHECK-NEXT:	.uleb128 .LBB_END0_2-.LBB0_2
53; CHECK-NEXT:	.byte	1
54; CHECK-NEXT:	.uleb128 .LBB0_3-.Lfunc_begin0
55; CHECK-NEXT:	.uleb128 .LBB_END0_3-.LBB0_3
56; CHECK-NEXT:	.byte	5
57