xref: /llvm-project/llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll (revision dd116369f646d023a2e7e5c145a1bed5dcf9a45c)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2; RUN: opt < %s -passes=mem2reg -S | FileCheck %s
3
4define i32 @testfunc(i1 %C, i32 %i, i8 %j) {
5; CHECK-LABEL: define i32 @testfunc(
6; CHECK-SAME: i1 [[C:%.*]], i32 [[I:%.*]], i8 [[J:%.*]]) {
7; CHECK-NEXT:    br i1 [[C]], label %[[T:.*]], label %[[CONT:.*]]
8; CHECK:       [[T]]:
9; CHECK-NEXT:    br label %[[CONT]]
10; CHECK:       [[CONT]]:
11; CHECK-NEXT:    [[I_0:%.*]] = phi i32 [ [[I]], %[[T]] ], [ undef, [[TMP0:%.*]] ]
12; CHECK-NEXT:    ret i32 [[I_0]]
13;
14  %I = alloca i32
15  br i1 %C, label %T, label %Cont
16T:
17  store i32 %i, ptr %I
18  br label %Cont
19Cont:
20  %Y = load i32, ptr %I
21  ret i32 %Y
22}
23
24