56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-pc-linux-gnu -tail-merge-threshold 2 < %s | FileCheck %s3 4; Test that we still do some merging if a block has more than5; tail-merge-threshold predecessors.6 7declare void @bar()8 9define void @foo(i32 %xxx) nounwind {10; CHECK-LABEL: foo:11; CHECK: # %bb.0:12; CHECK-NEXT: pushq %rax13; CHECK-NEXT: cmpl $3, %edi14; CHECK-NEXT: ja .LBB0_415; CHECK-NEXT: # %bb.1:16; CHECK-NEXT: movl %edi, %eax17; CHECK-NEXT: jmpq *.LJTI0_0(,%rax,8)18; CHECK-NEXT: .LBB0_3: # %bb319; CHECK-NEXT: callq bar@PLT20; CHECK-NEXT: popq %rax21; CHECK-NEXT: retq22; CHECK-NEXT: .LBB0_4: # %bb423; CHECK-NEXT: callq bar@PLT24; CHECK-NEXT: popq %rax25; CHECK-NEXT: retq26 switch i32 %xxx, label %bb4 [27 i32 0, label %bb028 i32 1, label %bb129 i32 2, label %bb230 i32 3, label %bb331 ]32 33bb0:34 call void @bar()35 br label %bb536 37bb1:38 call void @bar()39 br label %bb540 41bb2:42 call void @bar()43 br label %bb544 45bb3:46 call void @bar()47 br label %bb548 49bb4:50 call void @bar()51 br label %bb552 53bb5:54 ret void55}56