diff options
Diffstat (limited to 'test/Transforms/SimplifyCFG/common-dest-folding.ll')
-rw-r--r-- | test/Transforms/SimplifyCFG/common-dest-folding.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyCFG/common-dest-folding.ll b/test/Transforms/SimplifyCFG/common-dest-folding.ll index 10fb7d4..0aa3b2c 100644 --- a/test/Transforms/SimplifyCFG/common-dest-folding.ll +++ b/test/Transforms/SimplifyCFG/common-dest-folding.ll @@ -25,4 +25,33 @@ define i32 @foo(i32 %k, i32 %c1, i32 %c2) { ret i32 undef } +;CHECK: @conduse +;CHECK: shl i32 1, %c1 +;CHECK-NEXT: shl i32 1, %c2 +;CHECK-NEXT: and i32 +;CHECK-NEXT: icmp eq i32 +;CHECK-NEXT: and i32 +;CHECK-NEXT: icmp eq i32 +;CHECK: ret +define i32 @conduse(i32 %k, i32 %c1, i32 %c2) #0 { +bb: + %tmp = shl i32 1, %c1 + %tmp4 = shl i32 1, %c2 + %tmp1 = and i32 %tmp, %k + %tmp2 = icmp eq i32 %tmp1, 0 + br i1 %tmp2, label %bb9, label %bb3 + +bb3: ; preds = %bb + %tmp5 = and i32 %tmp4, %k + %tmp6 = icmp eq i32 %tmp5, 0 + br i1 %tmp6, label %bb9, label %bb7 + +bb7: ; preds = %bb3 + %tmp8 = tail call i32 (...)* @bar() #1 + br label %bb9 + +bb9: ; preds = %bb7, %bb3, %bb + ret i32 undef +} + declare i32 @bar(...) |