Fix vbroadcast matching logic to early unmatch if the node doesn't have
[oota-llvm.git] / test / CodeGen / X86 / tail-threshold.ll
1 ; RUN: llc -mtriple=x86_64-pc-linux-gnu -tail-merge-threshold 2 < %s | FileCheck %s
2
3 ; Test that we still do some merging if a block has more than
4 ; tail-merge-threshold predecessors.
5
6 ; CHECK:        callq   bar
7 ; CHECK:        callq   bar
8 ; CHECK:        callq   bar
9 ; CHECK-NOT:    callq
10
11 declare void @bar()
12
13 define void @foo(i32 %xxx) {
14 entry:
15   switch i32 %xxx, label %bb4 [
16     i32 0, label %bb0
17     i32 1, label %bb1
18     i32 2, label %bb2
19     i32 3, label %bb3
20   ]
21
22 bb0:
23   call void @bar()
24   br label %bb5
25
26 bb1:
27  call void @bar()
28  br label %bb5
29
30 bb2:
31   call void @bar()
32   br label %bb5
33
34 bb3:
35   call void @bar()
36   br label %bb5
37
38 bb4:
39   call void @bar()
40   br label %bb5
41
42 bb5:
43   ret void
44 }