@@ -393,9 +393,8 @@ define i32 @extractvalue_of_constant_phi(i1 %c) {
393
393
; CHECK: else:
394
394
; CHECK-NEXT: br label [[JOIN]]
395
395
; CHECK: join:
396
- ; CHECK-NEXT: [[PHI:%.*]] = phi { i32, i32 } [ { i32 1, i32 2 }, [[IF]] ], [ { i32 3, i32 4 }, [[ELSE]] ]
397
- ; CHECK-NEXT: [[EV:%.*]] = extractvalue { i32, i32 } [[PHI]], 0
398
- ; CHECK-NEXT: ret i32 [[EV]]
396
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 1, [[IF]] ], [ 3, [[ELSE]] ]
397
+ ; CHECK-NEXT: ret i32 [[PHI]]
399
398
;
400
399
br i1 %c , label %if , label %else
401
400
@@ -415,13 +414,13 @@ define i32 @extractvalue_of_one_constant_phi(i1 %c, { i32, i32 } %arg) {
415
414
; CHECK-LABEL: @extractvalue_of_one_constant_phi(
416
415
; CHECK-NEXT: br i1 [[C:%.*]], label [[IF:%.*]], label [[ELSE:%.*]]
417
416
; CHECK: if:
417
+ ; CHECK-NEXT: [[PHI_EV:%.*]] = extractvalue { i32, i32 } [[ARG:%.*]], 0
418
418
; CHECK-NEXT: br label [[JOIN:%.*]]
419
419
; CHECK: else:
420
420
; CHECK-NEXT: br label [[JOIN]]
421
421
; CHECK: join:
422
- ; CHECK-NEXT: [[PHI:%.*]] = phi { i32, i32 } [ [[ARG:%.*]], [[IF]] ], [ { i32 3, i32 4 }, [[ELSE]] ]
423
- ; CHECK-NEXT: [[EV:%.*]] = extractvalue { i32, i32 } [[PHI]], 0
424
- ; CHECK-NEXT: ret i32 [[EV]]
422
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ [[PHI_EV]], [[IF]] ], [ 3, [[ELSE]] ]
423
+ ; CHECK-NEXT: ret i32 [[PHI]]
425
424
;
426
425
br i1 %c , label %if , label %else
427
426
@@ -445,9 +444,8 @@ define i32 @extractvalue_of_constant_phi_multi_index(i1 %c) {
445
444
; CHECK: else:
446
445
; CHECK-NEXT: br label [[JOIN]]
447
446
; CHECK: join:
448
- ; CHECK-NEXT: [[PHI:%.*]] = phi { i32, { i32, i32 } } [ { i32 1, { i32, i32 } { i32 2, i32 3 } }, [[IF]] ], [ { i32 4, { i32, i32 } { i32 5, i32 6 } }, [[ELSE]] ]
449
- ; CHECK-NEXT: [[EV:%.*]] = extractvalue { i32, { i32, i32 } } [[PHI]], 1, 1
450
- ; CHECK-NEXT: ret i32 [[EV]]
447
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 3, [[IF]] ], [ 6, [[ELSE]] ]
448
+ ; CHECK-NEXT: ret i32 [[PHI]]
451
449
;
452
450
br i1 %c , label %if , label %else
453
451
@@ -467,13 +465,13 @@ define i32 @extractvalue_of_one_constant_phi_multi_index(i1 %c, { i32, { i32, i3
467
465
; CHECK-LABEL: @extractvalue_of_one_constant_phi_multi_index(
468
466
; CHECK-NEXT: br i1 [[C:%.*]], label [[IF:%.*]], label [[ELSE:%.*]]
469
467
; CHECK: if:
468
+ ; CHECK-NEXT: [[PHI_EV:%.*]] = extractvalue { i32, { i32, i32 } } [[ARG:%.*]], 1, 1
470
469
; CHECK-NEXT: br label [[JOIN:%.*]]
471
470
; CHECK: else:
472
471
; CHECK-NEXT: br label [[JOIN]]
473
472
; CHECK: join:
474
- ; CHECK-NEXT: [[PHI:%.*]] = phi { i32, { i32, i32 } } [ [[ARG:%.*]], [[IF]] ], [ { i32 4, { i32, i32 } { i32 5, i32 6 } }, [[ELSE]] ]
475
- ; CHECK-NEXT: [[EV:%.*]] = extractvalue { i32, { i32, i32 } } [[PHI]], 1, 1
476
- ; CHECK-NEXT: ret i32 [[EV]]
473
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ [[PHI_EV]], [[IF]] ], [ 6, [[ELSE]] ]
474
+ ; CHECK-NEXT: ret i32 [[PHI]]
477
475
;
478
476
br i1 %c , label %if , label %else
479
477
0 commit comments