[InstCombine] Signed saturation patterns
[llvm-core.git] / test / tools / llvm-extract / extract-block.ll
blob7cf0f16033794f5438caf71a53b845e6690a408a
1 ; RUN: llvm-extract -S -bb foo:bb4 %s | FileCheck %s
3 ; CHECK: declare void @bar()
4 define void @bar() {
5 bb:
6   ret void
9 ; CHECK-NOT: @unused()
10 define void @unused() {
11 bb:
12   ret void
15 ; CHECK: @foo.bb4
16 ; CHECK: call void @bar()
17 ; CHECK: %tmp5
18 define i32 @foo(i32 %arg) {
19 bb:
20   %tmp = alloca i32, align 4
21   %tmp1 = alloca i32, align 4
22   store i32 %arg, i32* %tmp1, align 4
23   %tmp2 = load i32, i32* %tmp1, align 4
24   %tmp3 = icmp sgt i32 %tmp2, 0
25   br i1 %tmp3, label %bb4, label %bb7
27 bb4:                                              ; preds = %bb
28   call void @bar()
29   %tmp5 = load i32, i32* %tmp1, align 4
30   %tmp6 = add nsw i32 %tmp5, 1
31   store i32 %tmp6, i32* %tmp1, align 4
32   store i32 %tmp6, i32* %tmp, align 4
33   br label %bb8
35 bb7:                                              ; preds = %bb
36   store i32 0, i32* %tmp, align 4
37   br label %bb8
39 bb8:                                              ; preds = %bb7, %bb4
40   %tmp9 = load i32, i32* %tmp, align 4
41   ret i32 %tmp9