xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/tail-threshold.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-pc-linux-gnu -tail-merge-threshold 2 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Test that we still do some merging if a block has more than
4*9880d681SAndroid Build Coastguard Worker; tail-merge-threshold predecessors.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; CHECK: 	callq	bar
7*9880d681SAndroid Build Coastguard Worker; CHECK:	callq	bar
8*9880d681SAndroid Build Coastguard Worker; CHECK:	callq	bar
9*9880d681SAndroid Build Coastguard Worker; CHECK-NOT:    callq
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdeclare void @bar()
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine void @foo(i32 %xxx) {
14*9880d681SAndroid Build Coastguard Workerentry:
15*9880d681SAndroid Build Coastguard Worker  switch i32 %xxx, label %bb4 [
16*9880d681SAndroid Build Coastguard Worker    i32 0, label %bb0
17*9880d681SAndroid Build Coastguard Worker    i32 1, label %bb1
18*9880d681SAndroid Build Coastguard Worker    i32 2, label %bb2
19*9880d681SAndroid Build Coastguard Worker    i32 3, label %bb3
20*9880d681SAndroid Build Coastguard Worker  ]
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerbb0:
23*9880d681SAndroid Build Coastguard Worker  call void @bar()
24*9880d681SAndroid Build Coastguard Worker  br label %bb5
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerbb1:
27*9880d681SAndroid Build Coastguard Worker call void @bar()
28*9880d681SAndroid Build Coastguard Worker br label %bb5
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerbb2:
31*9880d681SAndroid Build Coastguard Worker  call void @bar()
32*9880d681SAndroid Build Coastguard Worker  br label %bb5
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerbb3:
35*9880d681SAndroid Build Coastguard Worker  call void @bar()
36*9880d681SAndroid Build Coastguard Worker  br label %bb5
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerbb4:
39*9880d681SAndroid Build Coastguard Worker  call void @bar()
40*9880d681SAndroid Build Coastguard Worker  br label %bb5
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerbb5:
43*9880d681SAndroid Build Coastguard Worker  ret void
44*9880d681SAndroid Build Coastguard Worker}
45