@@ -152,3 +152,45 @@ EXIT:
152
152
%r = phi i8 [poison, %A ], [poison, %B ]
153
153
ret i8 %r
154
154
}
155
+
156
+ @g = extern_weak global i32
157
+
158
+ define i64 @pr49839_with_poison (i1 %c ) {
159
+ ; CHECK-LABEL: @pr49839_with_poison(
160
+ ; CHECK-NEXT: entry:
161
+ ; CHECK-NEXT: br i1 [[C:%.*]], label [[IF:%.*]], label [[JOIN:%.*]]
162
+ ; CHECK: if:
163
+ ; CHECK-NEXT: br label [[JOIN]]
164
+ ; CHECK: join:
165
+ ; CHECK-NEXT: ret i64 srem (i64 1, i64 ptrtoint (i32* @g to i64))
166
+ ;
167
+ entry:
168
+ br i1 %c , label %if , label %join
169
+
170
+ if:
171
+ br label %join
172
+
173
+ join:
174
+ %phi = phi i64 [ poison, %if ], [ srem (i64 1 , i64 ptrtoint (i32* @g to i64 )) , %entry ]
175
+ ret i64 %phi
176
+ }
177
+
178
+ define i64 @pr49839_without_poison (i1 %c ) {
179
+ ; CHECK-LABEL: @pr49839_without_poison(
180
+ ; CHECK-NEXT: entry:
181
+ ; CHECK-NEXT: br i1 [[C:%.*]], label [[IF:%.*]], label [[JOIN:%.*]]
182
+ ; CHECK: if:
183
+ ; CHECK-NEXT: br label [[JOIN]]
184
+ ; CHECK: join:
185
+ ; CHECK-NEXT: ret i64 srem (i64 1, i64 ptrtoint (i32* @g to i64))
186
+ ;
187
+ entry:
188
+ br i1 %c , label %if , label %join
189
+
190
+ if:
191
+ br label %join
192
+
193
+ join:
194
+ %phi = phi i64 [ srem (i64 1 , i64 ptrtoint (i32* @g to i64 )), %if ], [ srem (i64 1 , i64 ptrtoint (i32* @g to i64 )) , %entry ]
195
+ ret i64 %phi
196
+ }
0 commit comments