Use Align for TFL::TransientStackAlignment
[llvm-core.git] / test / CodeGen / X86 / tail-threshold.ll
blob757824fd036473e217fb1f9f726d26611daf47fa
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=x86_64-pc-linux-gnu -tail-merge-threshold 2 < %s | FileCheck %s
4 ; Test that we still do some merging if a block has more than
5 ; tail-merge-threshold predecessors.
7 declare void @bar()
9 define void @foo(i32 %xxx) nounwind {
10 ; CHECK-LABEL: foo:
11 ; CHECK:       # %bb.0:
12 ; CHECK-NEXT:    pushq %rax
13 ; CHECK-NEXT:    cmpl $3, %edi
14 ; CHECK-NEXT:    ja .LBB0_4
15 ; CHECK-NEXT:  # %bb.1:
16 ; CHECK-NEXT:    movl %edi, %eax
17 ; CHECK-NEXT:    jmpq *.LJTI0_0(,%rax,8)
18 ; CHECK-NEXT:  .LBB0_3: # %bb3
19 ; CHECK-NEXT:    callq bar
20 ; CHECK-NEXT:    popq %rax
21 ; CHECK-NEXT:    retq
22 ; CHECK-NEXT:  .LBB0_4: # %bb4
23 ; CHECK-NEXT:    callq bar
24 ; CHECK-NEXT:    popq %rax
25 ; CHECK-NEXT:    retq
26   switch i32 %xxx, label %bb4 [
27     i32 0, label %bb0
28     i32 1, label %bb1
29     i32 2, label %bb2
30     i32 3, label %bb3
31   ]
33 bb0:
34   call void @bar()
35   br label %bb5
37 bb1:
38  call void @bar()
39  br label %bb5
41 bb2:
42   call void @bar()
43   br label %bb5
45 bb3:
46   call void @bar()
47   br label %bb5
49 bb4:
50   call void @bar()
51   br label %bb5
53 bb5:
54   ret void