Skip to content

Commit 034ec9d

Browse files
committed
[StructurizeCFG] Precommit test case for D120312
1 parent c9cc803 commit 034ec9d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

llvm/test/Transforms/StructurizeCFG/invert-condition.ll

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,39 @@ bb2: ; preds = %bb2, %bb
2828
bb5: ; preds = %bb2
2929
ret void
3030
}
31+
32+
; FIXME: StructurizeCFG modifies I5 in-place without updating the use of I5 in
33+
; the phi instruction.
34+
define void @invert_condition_phi(i32 %arg) {
35+
; CHECK-LABEL: @invert_condition_phi(
36+
; CHECK-NEXT: main_body:
37+
; CHECK-NEXT: [[I5:%.*]] = icmp ne i32 [[ARG:%.*]], 0
38+
; CHECK-NEXT: br i1 [[I5]], label [[IF1:%.*]], label [[ENDIF1:%.*]]
39+
; CHECK: if1:
40+
; CHECK-NEXT: br label [[ENDIF1]]
41+
; CHECK: endif1:
42+
; CHECK-NEXT: [[I7:%.*]] = phi i1 [ [[I5]], [[MAIN_BODY:%.*]] ], [ false, [[IF1]] ]
43+
; CHECK-NEXT: [[I7_INV:%.*]] = xor i1 [[I7]], true
44+
; CHECK-NEXT: br i1 [[I7_INV]], label [[IF4:%.*]], label [[ENDIF4:%.*]]
45+
; CHECK: if4:
46+
; CHECK-NEXT: br label [[ENDIF4]]
47+
; CHECK: endif4:
48+
; CHECK-NEXT: ret void
49+
;
50+
main_body:
51+
%i5 = icmp eq i32 %arg, 0
52+
br i1 %i5, label %endif1, label %if1
53+
54+
if1:
55+
br label %endif1
56+
57+
endif1:
58+
%i7 = phi i1 [ false, %if1 ], [ %i5, %main_body ]
59+
br i1 %i7, label %endif4, label %if4
60+
61+
if4:
62+
br label %endif4
63+
64+
endif4:
65+
ret void
66+
}

0 commit comments

Comments
 (0)