@@ -2166,24 +2166,20 @@ define void @t36_different_indirect_callees(void()* %callee0, void()* %callee1)
2166
2166
; CHECK-LABEL: @t36_different_indirect_callees(
2167
2167
; CHECK-NEXT: entry:
2168
2168
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
2169
- ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN0:%.*]], label [[IF_ELSE:%.*]]
2170
- ; CHECK: if.then0:
2171
- ; CHECK-NEXT: invoke void [[CALLEE0:%.*]]()
2172
- ; CHECK-NEXT: to label [[INVOKE_CONT0:%.*]] unwind label [[LPAD:%.*]]
2173
- ; CHECK: invoke.cont0:
2174
- ; CHECK-NEXT: unreachable
2169
+ ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
2175
2170
; CHECK: lpad:
2176
2171
; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
2177
2172
; CHECK-NEXT: cleanup
2178
2173
; CHECK-NEXT: call void @destructor()
2179
2174
; CHECK-NEXT: resume { i8*, i32 } [[EH]]
2180
2175
; CHECK: if.else:
2181
2176
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
2182
- ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
2183
- ; CHECK: if.then1:
2184
- ; CHECK-NEXT: invoke void [[CALLEE1:%.*]]()
2185
- ; CHECK-NEXT: to label [[INVOKE_CONT2:%.*]] unwind label [[LPAD]]
2186
- ; CHECK: invoke.cont2:
2177
+ ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
2178
+ ; CHECK: if.then1.invoke:
2179
+ ; CHECK-NEXT: [[TMP0:%.*]] = phi void ()* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY:%.*]] ]
2180
+ ; CHECK-NEXT: invoke void [[TMP0]]()
2181
+ ; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
2182
+ ; CHECK: if.then1.cont:
2187
2183
; CHECK-NEXT: unreachable
2188
2184
; CHECK: if.end:
2189
2185
; CHECK-NEXT: call void @sideeffect()
@@ -2295,24 +2291,21 @@ define void @t38_different_arguments_and_operand_bundes_are_fine(void(i32)* %cal
2295
2291
; CHECK-LABEL: @t38_different_arguments_and_operand_bundes_are_fine(
2296
2292
; CHECK-NEXT: entry:
2297
2293
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
2298
- ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN0:%.*]], label [[IF_ELSE:%.*]]
2299
- ; CHECK: if.then0:
2300
- ; CHECK-NEXT: invoke void [[CALLEE0:%.*]](i32 0)
2301
- ; CHECK-NEXT: to label [[INVOKE_CONT0:%.*]] unwind label [[LPAD:%.*]]
2302
- ; CHECK: invoke.cont0:
2303
- ; CHECK-NEXT: unreachable
2294
+ ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
2304
2295
; CHECK: lpad:
2305
2296
; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
2306
2297
; CHECK-NEXT: cleanup
2307
2298
; CHECK-NEXT: call void @destructor()
2308
2299
; CHECK-NEXT: resume { i8*, i32 } [[EH]]
2309
2300
; CHECK: if.else:
2310
2301
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
2311
- ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
2312
- ; CHECK: if.then1:
2313
- ; CHECK-NEXT: invoke void [[CALLEE1:%.*]](i32 42)
2314
- ; CHECK-NEXT: to label [[INVOKE_CONT2:%.*]] unwind label [[LPAD]]
2315
- ; CHECK: invoke.cont2:
2302
+ ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
2303
+ ; CHECK: if.then1.invoke:
2304
+ ; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 42, [[IF_ELSE]] ], [ 0, [[ENTRY:%.*]] ]
2305
+ ; CHECK-NEXT: [[TMP1:%.*]] = phi void (i32)* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
2306
+ ; CHECK-NEXT: invoke void [[TMP1]](i32 [[TMP0]])
2307
+ ; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
2308
+ ; CHECK: if.then1.cont:
2316
2309
; CHECK-NEXT: unreachable
2317
2310
; CHECK: if.end:
2318
2311
; CHECK-NEXT: call void @sideeffect()
@@ -2353,24 +2346,21 @@ define void @t39_different_arguments_and_operand_bundes_are_fine(void()* %callee
2353
2346
; CHECK-LABEL: @t39_different_arguments_and_operand_bundes_are_fine(
2354
2347
; CHECK-NEXT: entry:
2355
2348
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
2356
- ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN0:%.*]], label [[IF_ELSE:%.*]]
2357
- ; CHECK: if.then0:
2358
- ; CHECK-NEXT: invoke void [[CALLEE0:%.*]]() [ "abc"(i32 42) ]
2359
- ; CHECK-NEXT: to label [[INVOKE_CONT0:%.*]] unwind label [[LPAD:%.*]]
2360
- ; CHECK: invoke.cont0:
2361
- ; CHECK-NEXT: unreachable
2349
+ ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
2362
2350
; CHECK: lpad:
2363
2351
; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
2364
2352
; CHECK-NEXT: cleanup
2365
2353
; CHECK-NEXT: call void @destructor()
2366
2354
; CHECK-NEXT: resume { i8*, i32 } [[EH]]
2367
2355
; CHECK: if.else:
2368
2356
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
2369
- ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
2370
- ; CHECK: if.then1:
2371
- ; CHECK-NEXT: invoke void [[CALLEE1:%.*]]() [ "abc"(i32 0) ]
2372
- ; CHECK-NEXT: to label [[INVOKE_CONT2:%.*]] unwind label [[LPAD]]
2373
- ; CHECK: invoke.cont2:
2357
+ ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
2358
+ ; CHECK: if.then1.invoke:
2359
+ ; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 0, [[IF_ELSE]] ], [ 42, [[ENTRY:%.*]] ]
2360
+ ; CHECK-NEXT: [[TMP1:%.*]] = phi void ()* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
2361
+ ; CHECK-NEXT: invoke void [[TMP1]]() [ "abc"(i32 [[TMP0]]) ]
2362
+ ; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
2363
+ ; CHECK: if.then1.cont:
2374
2364
; CHECK-NEXT: unreachable
2375
2365
; CHECK: if.end:
2376
2366
; CHECK-NEXT: call void @sideeffect()
@@ -2411,24 +2401,22 @@ define void @t40_different_arguments_and_operand_bundes_are_fine(void(i32)* %cal
2411
2401
; CHECK-LABEL: @t40_different_arguments_and_operand_bundes_are_fine(
2412
2402
; CHECK-NEXT: entry:
2413
2403
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
2414
- ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN0:%.*]], label [[IF_ELSE:%.*]]
2415
- ; CHECK: if.then0:
2416
- ; CHECK-NEXT: invoke void [[CALLEE0:%.*]](i32 0) [ "abc"(i32 42) ]
2417
- ; CHECK-NEXT: to label [[INVOKE_CONT0:%.*]] unwind label [[LPAD:%.*]]
2418
- ; CHECK: invoke.cont0:
2419
- ; CHECK-NEXT: unreachable
2404
+ ; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
2420
2405
; CHECK: lpad:
2421
2406
; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
2422
2407
; CHECK-NEXT: cleanup
2423
2408
; CHECK-NEXT: call void @destructor()
2424
2409
; CHECK-NEXT: resume { i8*, i32 } [[EH]]
2425
2410
; CHECK: if.else:
2426
2411
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
2427
- ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
2428
- ; CHECK: if.then1:
2429
- ; CHECK-NEXT: invoke void [[CALLEE1:%.*]](i32 42) [ "abc"(i32 0) ]
2430
- ; CHECK-NEXT: to label [[INVOKE_CONT2:%.*]] unwind label [[LPAD]]
2431
- ; CHECK: invoke.cont2:
2412
+ ; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
2413
+ ; CHECK: if.then1.invoke:
2414
+ ; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 42, [[IF_ELSE]] ], [ 0, [[ENTRY:%.*]] ]
2415
+ ; CHECK-NEXT: [[TMP1:%.*]] = phi i32 [ 0, [[IF_ELSE]] ], [ 42, [[ENTRY]] ]
2416
+ ; CHECK-NEXT: [[TMP2:%.*]] = phi void (i32)* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
2417
+ ; CHECK-NEXT: invoke void [[TMP2]](i32 [[TMP0]]) [ "abc"(i32 [[TMP1]]) ]
2418
+ ; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
2419
+ ; CHECK: if.then1.cont:
2432
2420
; CHECK-NEXT: unreachable
2433
2421
; CHECK: if.end:
2434
2422
; CHECK-NEXT: call void @sideeffect()
0 commit comments