YouCompleteMe/cpp/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
2012-07-05 17:51:06 -07:00

19 lines
504 B
LLVM

; Test merging of blocks with phi nodes.
;
; RUN: opt < %s -simplifycfg -S | not grep N:
;
define i32 @test(i1 %a) {
Q:
br i1 %a, label %N, label %M
N: ; preds = %Q
br label %M
M: ; preds = %N, %Q
; It's ok to merge N and M because the incoming values for W are the
; same for both cases...
%W = phi i32 [ 2, %N ], [ 2, %Q ] ; <i32> [#uses=1]
%R = add i32 %W, 1 ; <i32> [#uses=1]
ret i32 %R
}