[WebAssembly] Make LBB markers not affected by test order

Summary:
This way we can change the order of tests or delete some of them without
affecting tests for other functions.

Reviewers: tlively

Subscribers: sunfish, dschuff, sbc100, jgravelle-google, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60929

llvm-svn: 359036
This commit is contained in:
Heejin Ahn 2019-04-23 21:17:03 +00:00
parent 8c099ce72d
commit ace7a086ca
4 changed files with 82 additions and 82 deletions

View File

@ -18,13 +18,13 @@ declare void @something()
; CHECK: i32.lt_s
; CHECK-NEXT: br_if
; CHECK-NEXT: return
; CHECK-NEXT: .LBB0_3:
; CHECK-NEXT: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block
; CHECK-NEXT: i32.const
; CHECK-NEXT: i32.add
; CHECK-NEXT: call
; CHECK-NEXT: br
; CHECK-NEXT: .LBB0_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_loop
define void @test0(i32 %n) {
entry:
@ -53,13 +53,13 @@ back:
; CHECK: i32.lt_s
; CHECK-NEXT: br_if
; CHECK-NEXT: return
; CHECK-NEXT: .LBB1_3:
; CHECK-NEXT: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block
; CHECK-NEXT: i32.const
; CHECK-NEXT: i32.add
; CHECK-NEXT: call
; CHECK-NEXT: br
; CHECK-NEXT: .LBB1_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_loop
define void @test1(i32 %n) {
entry:
@ -86,10 +86,10 @@ back:
; CHECK-NOT: local
; CHECK: block {{$}}
; CHECK: br_if 0, {{[^,]+}}{{$}}
; CHECK: .LBB2_{{[0-9]+}}:
; CHECK: .LBB{{[0-9]+}}_{{[0-9]+}}:
; CHECK: loop
; CHECK: br_if 0, $pop{{[0-9]+}}{{$}}
; CHECK: .LBB2_{{[0-9]+}}:
; CHECK: .LBB{{[0-9]+}}_{{[0-9]+}}:
; CHECK: end_loop
; CHECK: end_block
; CHECK: return{{$}}
@ -123,14 +123,14 @@ for.end:
; CHECK-NEXT: block {{$}}
; CHECK: br_if 0, ${{[^,]+}}{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB3_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK-NEXT: end_block{{$}}
; CHECK: block {{$}}
; CHECK: br_if 0, ${{[^,]+}}{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB3_4:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK: .LBB3_5:
; CHECK: .LBB{{[0-9]+}}_5:
; CHECK-NEXT: end_block{{$}}
; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
; CHECK-NEXT: return $pop{{[0-9]+}}{{$}}
@ -160,7 +160,7 @@ exit:
; CHECK-LABEL: triangle:
; CHECK: block {{$}}
; CHECK: br_if 0, $1{{$}}
; CHECK: .LBB4_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK: return
define i32 @triangle(i32* %p, i32 %a) {
entry:
@ -180,8 +180,8 @@ exit:
; CHECK: block {{$}}
; CHECK: br_if 0, $1{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB5_2:
; CHECK: .LBB5_3:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
; CHECK-NEXT: return $pop{{[0-9]+}}{{$}}
define i32 @diamond(i32* %p, i32 %a) {
@ -211,11 +211,11 @@ entry:
; CHECK-LABEL: minimal_loop:
; CHECK-NOT: br
; CHECK: .LBB7_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK: loop i32
; CHECK: i32.store 0($0), $pop{{[0-9]+}}{{$}}
; CHECK: br 0{{$}}
; CHECK: .LBB7_2:
; CHECK: .LBB{{[0-9]+}}_2:
define i32 @minimal_loop(i32* %p) {
entry:
store volatile i32 0, i32* %p
@ -227,7 +227,7 @@ loop:
; CHECK-LABEL: simple_loop:
; CHECK-NOT: br
; CHECK: .LBB8_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK: loop {{$}}
; CHECK: br_if 0, $pop{{[0-9]+}}{{$}}
; CHECK-NEXT: end_loop{{$}}
@ -251,8 +251,8 @@ exit:
; CHECK: br_if 0, $0{{$}}
; CHECK: block {{$}}
; CHECK: br_if 0, $1{{$}}
; CHECK: .LBB9_3:
; CHECK: .LBB9_4:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK: return
define i32 @doubletriangle(i32 %a, i32 %b, i32* %p) {
entry:
@ -279,9 +279,9 @@ exit:
; CHECK: block {{$}}
; CHECK: br_if 0, $0{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB10_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK: br_if 0, $1{{$}}
; CHECK: .LBB10_4:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK: i32.const $push{{[0-9]+}}=, 0{{$}}
; CHECK-NEXT: return $pop{{[0-9]+}}{{$}}
define i32 @ifelse_earlyexits(i32 %a, i32 %b, i32* %p) {
@ -305,19 +305,19 @@ exit:
}
; CHECK-LABEL: doublediamond_in_a_loop:
; CHECK: .LBB11_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK: loop i32{{$}}
; CHECK: block {{$}}
; CHECK: br_if 0, $0{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB11_3:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK: end_block{{$}}
; CHECK: block {{$}}
; CHECK: br_if 0, $1{{$}}
; CHECK: br 1{{$}}
; CHECK: .LBB11_5:
; CHECK: .LBB{{[0-9]+}}_5:
; CHECK: br 0{{$}}
; CHECK: .LBB11_6:
; CHECK: .LBB{{[0-9]+}}_6:
; CHECK-NEXT: end_loop{{$}}
define i32 @doublediamond_in_a_loop(i32 %a, i32 %b, i32* %p) {
entry:
@ -387,15 +387,15 @@ if.end:
; CHECK: br_if 0, $pop{{[0-9]+}}{{$}}
; CHECK: br_if 1, $pop{{[0-9]+}}{{$}}
; CHECK: br 1{{$}}
; CHECK-NEXT: .LBB13_3:
; CHECK-NEXT: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: block {{$}}
; CHECK: br_if 0, $pop{{[0-9]+}}{{$}}
; CHECK: br_if 1, $pop{{[0-9]+}}{{$}}
; CHECK-NEXT: .LBB13_5:
; CHECK-NEXT: .LBB{{[0-9]+}}_5:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
; CHECK-NEXT: .LBB13_6:
; CHECK-NEXT: .LBB{{[0-9]+}}_6:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
define void @test4(i32 %t) {
@ -424,14 +424,14 @@ default:
; same basic block.
; CHECK-LABEL: test5:
; CHECK: .LBB14_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK: br_if 0, {{[^,]+}}{{$}}
; CHECK-NEXT: end_loop{{$}}
; CHECK: return{{$}}
; CHECK-NEXT: .LBB14_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK: return{{$}}
define void @test5(i1 %p, i1 %q) {
entry:
@ -459,7 +459,7 @@ return:
; which has another predecessor.
; CHECK-LABEL: test6:
; CHECK: .LBB15_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
@ -472,10 +472,10 @@ return:
; CHECK-NEXT: end_loop{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
; CHECK-NEXT: .LBB15_5:
; CHECK-NEXT: .LBB{{[0-9]+}}_5:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: .LBB15_6:
; CHECK: .LBB{{[0-9]+}}_6:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
@ -512,7 +512,7 @@ second:
; that end in unreachable.
; CHECK-LABEL: test7:
; CHECK: .LBB16_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: block {{$}}
@ -521,7 +521,7 @@ second:
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NOT: block
; CHECK: unreachable
; CHECK-NEXT: .LBB16_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br_if 0, {{[^,]+}}{{$}}
@ -557,12 +557,12 @@ u1:
; Test an interesting case using nested loops and switches.
; CHECK-LABEL: test8:
; CHECK: .LBB17_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: loop i32{{$}}
; CHECK-NEXT: i32.const $push{{[^,]+}}, 0{{$}}
; CHECK-NEXT: br_if 0, {{[^,]+}}{{$}}
; CHECK-NEXT: br 0{{$}}
; CHECK-NEXT: .LBB17_2:
; CHECK-NEXT: .LBB{{[0-9]+}}_2:
; CHECK-NEXT: end_loop{{$}}
define i32 @test8() {
bb:
@ -585,12 +585,12 @@ bb3:
; Test an interesting case using nested loops that share a bottom block.
; CHECK-LABEL: test9:
; CHECK: .LBB18_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NEXT: .LBB18_2:
; CHECK-NEXT: .LBB{{[0-9]+}}_2:
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: block {{$}}
@ -599,12 +599,12 @@ bb3:
; CHECK-NOT: block
; CHECK: br_if 2, {{[^,]+}}{{$}}
; CHECK-NEXT: br 1{{$}}
; CHECK-NEXT: .LBB18_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NEXT: br 0{{$}}
; CHECK-NEXT: .LBB18_5:
; CHECK-NEXT: .LBB{{[0-9]+}}_5:
; CHECK-NOT: block
; CHECK: end_block
; CHECK-NOT: block
@ -644,15 +644,15 @@ end:
; and loop exits to a block with unreachable.
; CHECK-LABEL: test10:
; CHECK: .LBB19_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: br_if 0, {{[^,]+}}{{$}}
; CHECK: .LBB19_3:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: .LBB19_4:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
; CHECK: br_if 0, {{[^,]+}}{{$}}
@ -664,11 +664,11 @@ end:
; CHECK-NOT: block
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NEXT: return{{$}}
; CHECK-NEXT: .LBB19_9:
; CHECK-NEXT: .LBB{{[0-9]+}}_9:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br 0{{$}}
; CHECK-NEXT: .LBB19_10:
; CHECK-NEXT: .LBB{{[0-9]+}}_10:
define void @test10() {
bb0:
br label %bb1
@ -718,25 +718,25 @@ bb6:
; CHECK-NEXT: br_if 0, {{[^,]+}}{{$}}
; CHECK-NOT: block
; CHECK: br_if 2, {{[^,]+}}{{$}}
; CHECK-NEXT: .LBB20_3:
; CHECK-NEXT: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
; CHECK-NEXT: .LBB20_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NOT: block
; CHECK: br_if 2, {{[^,]+}}{{$}}
; CHECK-NEXT: .LBB20_6:
; CHECK-NEXT: .LBB{{[0-9]+}}_6:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
; CHECK-NEXT: .LBB20_7:
; CHECK-NEXT: .LBB{{[0-9]+}}_7:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
; CHECK-NEXT: .LBB20_8:
; CHECK-NEXT: .LBB{{[0-9]+}}_8:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: return{{$}}
@ -771,7 +771,7 @@ bb8:
}
; CHECK-LABEL: test12:
; CHECK: .LBB21_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
; CHECK-NOT: block
@ -783,17 +783,17 @@ bb8:
; CHECK-NOT: block
; CHECK: br_if 1, {{[^,]+}}{{$}}
; CHECK-NEXT: br 3{{$}}
; CHECK-NEXT: .LBB21_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br_if 0, {{[^,]+}}{{$}}
; CHECK-NOT: block
; CHECK: br_if 2, {{[^,]+}}{{$}}
; CHECK-NEXT: .LBB21_6:
; CHECK-NEXT: .LBB{{[0-9]+}}_6:
; CHECK-NEXT: end_block{{$}}
; CHECK-NOT: block
; CHECK: br 0{{$}}
; CHECK-NEXT: .LBB21_7:
; CHECK-NEXT: .LBB{{[0-9]+}}_7:
; CHECK-NEXT: end_loop{{$}}
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
@ -830,14 +830,14 @@ bb7:
; CHECK: br_if 0, $pop0{{$}}
; CHECK: block {{$}}
; CHECK: br_if 0, $pop3{{$}}
; CHECK: .LBB22_3:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block{{$}}
; CHECK: br_if 1, $pop{{[0-9]+}}{{$}}
; CHECK-NEXT: br 1{{$}}
; CHECK-NEXT: .LBB22_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
; CHECK-NEXT: .LBB22_5:
; CHECK-NEXT: .LBB{{[0-9]+}}_5:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: unreachable{{$}}
define void @test13() noinline optnone {
@ -861,12 +861,12 @@ bb5:
; before the loop for the second.
; CHECK-LABEL: test14:
; CHECK: .LBB23_1:{{$}}
; CHECK: .LBB{{[0-9]+}}_1:{{$}}
; CHECK-NEXT: loop {{$}}
; CHECK-NEXT: i32.const $push0=, 0{{$}}
; CHECK-NEXT: br_if 0, $pop0{{$}}
; CHECK-NEXT: end_loop{{$}}
; CHECK-NEXT: .LBB23_3:{{$}}
; CHECK-NEXT: .LBB{{[0-9]+}}_3:{{$}}
; CHECK-NEXT: loop {{$}}
; CHECK-NEXT: i32.const $push1=, 0{{$}}
; CHECK-NEXT: br_if 0, $pop1{{$}}
@ -925,22 +925,22 @@ bb50:
; CHECK: block
; CHECK-NEXT: block
; CHECK: br_if 0, $pop{{.*}}{{$}}
; CHECK: .LBB24_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: block {{$}}
; CHECK-NEXT: loop {{$}}
; CHECK: br_if 1, $pop{{.*}}{{$}}
; CHECK: br_if 0, ${{.*}}{{$}}
; CHECK-NEXT: br 2{{$}}
; CHECK-NEXT: .LBB24_4:
; CHECK-NEXT: .LBB{{[0-9]+}}_4:
; CHECK-NEXT: end_loop{{$}}
; CHECK: .LBB24_5:
; CHECK: .LBB{{[0-9]+}}_5:
; CHECK-NEXT: end_block{{$}}
; CHECK: br_if 1, $pop{{.*}}{{$}}
; CHECK: return{{$}}
; CHECK: .LBB24_7:
; CHECK: .LBB{{[0-9]+}}_7:
; CHECK-NEXT: end_block{{$}}
; CHECK: .LBB24_8:
; CHECK: .LBB{{[0-9]+}}_8:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
%0 = type { i8, i32 }

View File

@ -25,7 +25,7 @@ done:
; Swap phis.
; CHECK-LABEL: test1:
; CHECK: .LBB1_1:
; CHECK: .LBB{{[0-9]+}}_1:
; CHECK: local.copy $[[NUM0:[0-9]+]]=, $[[NUM1:[0-9]+]]{{$}}
; CHECK: local.copy $[[NUM1]]=, $[[NUM2:[0-9]+]]{{$}}
; CHECK: local.copy $[[NUM2]]=, $[[NUM0]]{{$}}

View File

@ -118,7 +118,7 @@ define i32 @no_sink_readonly_call(i32 %x, i32 %y, i32* %p) {
; CHECK-NEXT: br_if 0, $pop8{{$}}
; CHECK-NEXT: i32.const $push9=, 0{{$}}
; CHECK-NEXT: return $pop9{{$}}
; CHECK-NEXT: .LBB7_2:
; CHECK-NEXT: .LBB{{[0-9]+}}_2:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: i32.const $push14=, 1{{$}}
; CHECK-NEXT: return $pop14{{$}}
@ -145,7 +145,7 @@ define i32 @no_sink_readonly_call(i32 %x, i32 %y, i32* %p) {
; NOREGS-NEXT: br_if 0{{$}}
; NOREGS-NEXT: i32.const 0{{$}}
; NOREGS-NEXT: return{{$}}
; NOREGS-NEXT: .LBB7_2:
; NOREGS-NEXT: .LBB{{[0-9]+}}_2:
; NOREGS-NEXT: end_block{{$}}
; NOREGS-NEXT: i32.const 1{{$}}
; NOREGS-NEXT: return{{$}}
@ -178,7 +178,7 @@ false:
; CHECK-NEXT: i32.lt_u $push[[NUM3:[0-9]+]]=, $3, $0{{$}}
; CHECK-NEXT: br_if 0, $pop[[NUM3]]{{$}}
; CHECK-NEXT: i32.store 0($2), $3{{$}}
; CHECK-NEXT: .LBB8_3:
; CHECK-NEXT: .LBB{{[0-9]+}}_3:
; CHECK-NEXT: end_block{{$}}
; CHECK-NEXT: return{{$}}
; NOREGS-LABEL: multiple_uses:
@ -198,7 +198,7 @@ false:
; NOREGS-NEXT: local.get 2{{$}}
; NOREGS-NEXT: local.get 3{{$}}
; NOREGS-NEXT: i32.store 0{{$}}
; NOREGS-NEXT: .LBB8_3:
; NOREGS-NEXT: .LBB{{[0-9]+}}_3:
; NOREGS-NEXT: end_block{{$}}
; NOREGS-NEXT: return{{$}}
define void @multiple_uses(i32* %arg0, i32* %arg1, i32* %arg2) nounwind {

View File

@ -22,19 +22,19 @@ declare void @foo5()
; CHECK: block {{$}}
; CHECK: block {{$}}
; CHECK: br_table {{[^,]+}}, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 4, 5, 0{{$}}
; CHECK: .LBB0_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK: call foo0{{$}}
; CHECK: .LBB0_3:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK: call foo1{{$}}
; CHECK: .LBB0_4:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK: call foo2{{$}}
; CHECK: .LBB0_5:
; CHECK: .LBB{{[0-9]+}}_5:
; CHECK: call foo3{{$}}
; CHECK: .LBB0_6:
; CHECK: .LBB{{[0-9]+}}_6:
; CHECK: call foo4{{$}}
; CHECK: .LBB0_7:
; CHECK: .LBB{{[0-9]+}}_7:
; CHECK: call foo5{{$}}
; CHECK: .LBB0_8:
; CHECK: .LBB{{[0-9]+}}_8:
; CHECK: return{{$}}
define void @bar32(i32 %n) {
entry:
@ -102,19 +102,19 @@ sw.epilog: ; preds = %entry, %sw.bb.5, %s
; CHECK: block {{$}}
; CHECK: block {{$}}
; CHECK: br_table {{[^,]+}}, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 4, 5, 0{{$}}
; CHECK: .LBB1_2:
; CHECK: .LBB{{[0-9]+}}_2:
; CHECK: call foo0{{$}}
; CHECK: .LBB1_3:
; CHECK: .LBB{{[0-9]+}}_3:
; CHECK: call foo1{{$}}
; CHECK: .LBB1_4:
; CHECK: .LBB{{[0-9]+}}_4:
; CHECK: call foo2{{$}}
; CHECK: .LBB1_5:
; CHECK: .LBB{{[0-9]+}}_5:
; CHECK: call foo3{{$}}
; CHECK: .LBB1_6:
; CHECK: .LBB{{[0-9]+}}_6:
; CHECK: call foo4{{$}}
; CHECK: .LBB1_7:
; CHECK: .LBB{{[0-9]+}}_7:
; CHECK: call foo5{{$}}
; CHECK: .LBB1_8:
; CHECK: .LBB{{[0-9]+}}_8:
; CHECK: return{{$}}
define void @bar64(i64 %n) {
entry: