1acec6419SRahman Lavaee; Check the basic block sections labels option 2acec6419SRahman Lavaee; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map | FileCheck %s --check-prefixes=CHECK,UNIQ 3acec6419SRahman Lavaee; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=false -basic-block-address-map | FileCheck %s --check-prefixes=CHECK,NOUNIQ 4*7b7747dcSRahman Lavaee; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -split-machine-functions | FileCheck %s --check-prefixes=CHECK,UNIQ 5acec6419SRahman Lavaee 6acec6419SRahman Lavaeedefine void @_Z3bazb(i1 zeroext, i1 zeroext) personality ptr @__gxx_personality_v0 { 7acec6419SRahman Lavaee br i1 %0, label %3, label %8 8acec6419SRahman Lavaee 9acec6419SRahman Lavaee3: 10acec6419SRahman Lavaee %4 = invoke i32 @_Z3barv() 11acec6419SRahman Lavaee to label %8 unwind label %6 12acec6419SRahman Lavaee br label %10 13acec6419SRahman Lavaee 14acec6419SRahman Lavaee6: 15acec6419SRahman Lavaee landingpad { ptr, i32 } 16acec6419SRahman Lavaee catch ptr null 17acec6419SRahman Lavaee br label %12 18acec6419SRahman Lavaee 19acec6419SRahman Lavaee8: 20acec6419SRahman Lavaee %9 = call i32 @_Z3foov() 21acec6419SRahman Lavaee br i1 %1, label %12, label %10 22acec6419SRahman Lavaee 23acec6419SRahman Lavaee10: 24acec6419SRahman Lavaee %11 = select i1 %1, ptr blockaddress(@_Z3bazb, %3), ptr blockaddress(@_Z3bazb, %12) ; <ptr> [#uses=1] 25acec6419SRahman Lavaee indirectbr ptr %11, [label %3, label %12] 26acec6419SRahman Lavaee 27acec6419SRahman Lavaee12: 28acec6419SRahman Lavaee ret void 29acec6419SRahman Lavaee} 30acec6419SRahman Lavaee 31acec6419SRahman Lavaeedeclare i32 @_Z3barv() #1 32acec6419SRahman Lavaee 33acec6419SRahman Lavaeedeclare i32 @_Z3foov() #1 34acec6419SRahman Lavaee 35acec6419SRahman Lavaeedeclare i32 @__gxx_personality_v0(...) 36acec6419SRahman Lavaee 37acec6419SRahman Lavaee; UNIQ: .section .text._Z3bazb,"ax",@progbits{{$}} 38acec6419SRahman Lavaee; NOUNIQ: .section .text,"ax",@progbits,unique,1 39acec6419SRahman Lavaee; CHECK-LABEL: _Z3bazb: 40acec6419SRahman Lavaee; CHECK-LABEL: .Lfunc_begin0: 41acec6419SRahman Lavaee; CHECK-LABEL: .LBB_END0_0: 42acec6419SRahman Lavaee; CHECK-LABEL: .LBB0_1: 43acec6419SRahman Lavaee; CHECK-LABEL: .LBB_END0_1: 44acec6419SRahman Lavaee; CHECK-LABEL: .LBB0_2: 45acec6419SRahman Lavaee; CHECK-LABEL: .LBB_END0_2: 46acec6419SRahman Lavaee; CHECK-LABEL: .LBB0_3: 47acec6419SRahman Lavaee; CHECK-LABEL: .LBB_END0_3: 48acec6419SRahman Lavaee; CHECK-LABEL: .Lfunc_end0: 49acec6419SRahman Lavaee 50acec6419SRahman Lavaee; UNIQ: .section .llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text._Z3bazb{{$}} 51acec6419SRahman Lavaee;; Verify that with -unique-section-names=false, the unique id of the text section gets assigned to the llvm_bb_addr_map section. 52acec6419SRahman Lavaee; NOUNIQ: .section .llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text,unique,1 53acec6419SRahman Lavaee; CHECK-NEXT: .byte 2 # version 54acec6419SRahman Lavaee; CHECK-NEXT: .byte 0 # feature 55acec6419SRahman Lavaee; CHECK-NEXT: .quad .Lfunc_begin0 # function address 56acec6419SRahman Lavaee; CHECK-NEXT: .byte 6 # number of basic blocks 57acec6419SRahman Lavaee; CHECK-NEXT: .byte 0 # BB id 58acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .Lfunc_begin0-.Lfunc_begin0 59acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_0-.Lfunc_begin0 60acec6419SRahman Lavaee; CHECK-NEXT: .byte 8 61acec6419SRahman Lavaee; CHECK-NEXT: .byte 1 # BB id 62acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB0_1-.LBB_END0_0 63acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_1-.LBB0_1 64acec6419SRahman Lavaee; CHECK-NEXT: .byte 8 65acec6419SRahman Lavaee; CHECK-NEXT: .byte 3 # BB id 66acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB0_2-.LBB_END0_1 67acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_2-.LBB0_2 68acec6419SRahman Lavaee; CHECK-NEXT: .byte 8 69acec6419SRahman Lavaee; CHECK-NEXT: .byte 4 # BB id 70acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB0_3-.LBB_END0_2 71acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_3-.LBB0_3 72acec6419SRahman Lavaee; CHECK-NEXT: .byte 16 73acec6419SRahman Lavaee; CHECK-NEXT: .byte 5 # BB id 74acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB0_4-.LBB_END0_3 75acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_4-.LBB0_4 76acec6419SRahman Lavaee; CHECK-NEXT: .byte 1 77acec6419SRahman Lavaee; CHECK-NEXT: .byte 2 # BB id 78acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB0_5-.LBB_END0_4 79acec6419SRahman Lavaee; CHECK-NEXT: .uleb128 .LBB_END0_5-.LBB0_5 80acec6419SRahman Lavaee; CHECK-NEXT: .byte 5 81