@@ -10,9 +10,9 @@ define void @test() #0 {
1010; CHECK-NEXT: bb:
1111; CHECK-NEXT: br label [[BB1:%.*]]
1212; CHECK: bb1:
13- ; CHECK-NEXT: [[TMP:%.*]] = phi i32 [ undef , [[BB1]] ], [ undef , [[BB:%.*]] ]
14- ; CHECK-NEXT: [[TMP2:%.*]] = phi i32 [ [[TMP18:%.*]], [[BB1]] ], [ undef , [[BB]] ]
15- ; CHECK-NEXT: [[TMP3:%.*]] = mul i32 undef , [[TMP]]
13+ ; CHECK-NEXT: [[TMP:%.*]] = phi i32 [ 1 , [[BB1]] ], [ 2 , [[BB:%.*]] ]
14+ ; CHECK-NEXT: [[TMP2:%.*]] = phi i32 [ [[TMP18:%.*]], [[BB1]] ], [ 3 , [[BB]] ]
15+ ; CHECK-NEXT: [[TMP3:%.*]] = mul i32 4 , [[TMP]]
1616; CHECK-NEXT: [[TMP4:%.*]] = mul i32 [[TMP3]], [[TMP]]
1717; CHECK-NEXT: [[TMP5:%.*]] = mul i32 [[TMP4]], [[TMP]]
1818; CHECK-NEXT: [[TMP6:%.*]] = mul i32 [[TMP5]], [[TMP]]
3434 br label %bb1
3535
3636bb1: ; preds = %bb1, %bb
37- %tmp = phi i32 [ undef , %bb1 ], [ undef , %bb ]
38- %tmp2 = phi i32 [ %tmp18 , %bb1 ], [ undef , %bb ]
39- %tmp3 = mul i32 undef , %tmp
37+ %tmp = phi i32 [ 1 , %bb1 ], [ 2 , %bb ]
38+ %tmp2 = phi i32 [ %tmp18 , %bb1 ], [ 3 , %bb ]
39+ %tmp3 = mul i32 4 , %tmp
4040 %tmp4 = mul i32 %tmp3 , %tmp
4141 %tmp5 = mul i32 %tmp4 , %tmp
4242 %tmp6 = mul i32 %tmp5 , %tmp
@@ -60,35 +60,35 @@ define void @test_2(ptr addrspace(1) %arg, i32 %arg1) #0 {
6060; CHECK-NEXT: bb:
6161; CHECK-NEXT: br label [[BB2:%.*]]
6262; CHECK: bb2:
63- ; CHECK-NEXT: [[TMP:%.*]] = phi i32 [ undef , [[BB:%.*]] ], [ undef , [[BB2]] ]
64- ; CHECK-NEXT: [[TMP3:%.*]] = phi i32 [ 0, [[BB]] ], [ undef , [[BB2]] ]
63+ ; CHECK-NEXT: [[TMP:%.*]] = phi i32 [ 3 , [[BB:%.*]] ], [ 3 , [[BB2]] ]
64+ ; CHECK-NEXT: [[TMP3:%.*]] = phi i32 [ 0, [[BB]] ], [ 3 , [[BB2]] ]
6565; CHECK-NEXT: [[TMP0:%.*]] = mul i32 [[TMP]], 8
66- ; CHECK-NEXT: [[OP_RDX:%.*]] = add i32 undef , [[TMP0]]
66+ ; CHECK-NEXT: [[OP_RDX:%.*]] = add i32 27 , [[TMP0]]
6767; CHECK-NEXT: call void @use(i32 [[OP_RDX]])
6868; CHECK-NEXT: br label [[BB2]]
6969;
7070bb:
7171 br label %bb2
7272
7373bb2: ; preds = %bb2, %bb
74- %tmp = phi i32 [ undef , %bb ], [ undef , %bb2 ]
75- %tmp3 = phi i32 [ 0 , %bb ], [ undef , %bb2 ]
76- %tmp4 = add i32 %tmp , undef
77- %tmp5 = add i32 undef , %tmp4
74+ %tmp = phi i32 [ 3 , %bb ], [ 3 , %bb2 ]
75+ %tmp3 = phi i32 [ 0 , %bb ], [ 3 , %bb2 ]
76+ %tmp4 = add i32 %tmp , 3
77+ %tmp5 = add i32 3 , %tmp4
7878 %tmp6 = add i32 %tmp , %tmp5
79- %tmp7 = add i32 undef , %tmp6
79+ %tmp7 = add i32 3 , %tmp6
8080 %tmp8 = add i32 %tmp , %tmp7
81- %tmp9 = add i32 undef , %tmp8
81+ %tmp9 = add i32 3 , %tmp8
8282 %tmp10 = add i32 %tmp , %tmp9
83- %tmp11 = add i32 undef , %tmp10
83+ %tmp11 = add i32 3 , %tmp10
8484 %tmp12 = add i32 %tmp , %tmp11
85- %tmp13 = add i32 undef , %tmp12
85+ %tmp13 = add i32 3 , %tmp12
8686 %tmp14 = add i32 %tmp , %tmp13
87- %tmp15 = add i32 undef , %tmp14
87+ %tmp15 = add i32 3 , %tmp14
8888 %tmp16 = add i32 %tmp , %tmp15
89- %tmp17 = add i32 undef , %tmp16
89+ %tmp17 = add i32 3 , %tmp16
9090 %tmp18 = add i32 %tmp , %tmp17
91- %tmp19 = add i32 undef , %tmp18
91+ %tmp19 = add i32 3 , %tmp18
9292 call void @use (i32 %tmp19 )
9393 br label %bb2
9494}
@@ -103,8 +103,8 @@ define i64 @test_3() #0 {
103103; CHECK: bb2:
104104; CHECK-NEXT: br label [[BB3]]
105105; CHECK: bb3:
106- ; CHECK-NEXT: [[VAL:%.*]] = phi i32 [ undef , [[BB1]] ], [ undef , [[BB2:%.*]] ]
107- ; CHECK-NEXT: [[VAL4:%.*]] = phi i32 [ undef , [[BB1]] ], [ undef , [[BB2]] ]
106+ ; CHECK-NEXT: [[VAL:%.*]] = phi i32 [ 3 , [[BB1]] ], [ 3 , [[BB2:%.*]] ]
107+ ; CHECK-NEXT: [[VAL4:%.*]] = phi i32 [ 3 , [[BB1]] ], [ 3 , [[BB2]] ]
108108; CHECK-NEXT: [[TMP0:%.*]] = insertelement <32 x i32> poison, i32 [[VAL4]], i32 0
109109; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <32 x i32> [[TMP0]], <32 x i32> poison, <32 x i32> zeroinitializer
110110; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vector.reduce.mul.v32i32(<32 x i32> [[TMP1]])
@@ -136,7 +136,7 @@ define i64 @test_3() #0 {
136136; CHECK-NEXT: [[OP_RDX25:%.*]] = mul i32 [[OP_RDX21]], [[OP_RDX22]]
137137; CHECK-NEXT: [[OP_RDX26:%.*]] = mul i32 [[OP_RDX23]], [[OP_RDX24]]
138138; CHECK-NEXT: [[OP_RDX27:%.*]] = mul i32 [[OP_RDX25]], [[OP_RDX26]]
139- ; CHECK-NEXT: [[VAL64:%.*]] = add i32 undef , [[OP_RDX27]]
139+ ; CHECK-NEXT: [[VAL64:%.*]] = add i32 3 , [[OP_RDX27]]
140140; CHECK-NEXT: [[VAL65:%.*]] = sext i32 [[VAL64]] to i64
141141; CHECK-NEXT: ret i64 [[VAL65]]
142142;
@@ -150,8 +150,8 @@ bb2: ; No predecessors!
150150 br label %bb3
151151
152152bb3: ; preds = %bb2, %bb1
153- %val = phi i32 [ undef , %bb1 ], [ undef , %bb2 ]
154- %val4 = phi i32 [ undef , %bb1 ], [ undef , %bb2 ]
153+ %val = phi i32 [ 3 , %bb1 ], [ 3 , %bb2 ]
154+ %val4 = phi i32 [ 3 , %bb1 ], [ 3 , %bb2 ]
155155 %val5 = mul i32 %val , %val4
156156 %val6 = mul i32 %val5 , %val4
157157 %val7 = mul i32 %val6 , %val4
@@ -211,7 +211,7 @@ bb3: ; preds = %bb2, %bb1
211211 %val61 = mul i32 %val60 , %val4
212212 %val62 = mul i32 %val61 , %val4
213213 %val63 = mul i32 %val62 , %val4
214- %val64 = add i32 undef , %val63
214+ %val64 = add i32 3 , %val63
215215 %val65 = sext i32 %val64 to i64
216216 ret i64 %val65
217217}
0 commit comments