Skip to content

Commit 0e7c282

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent 121ed07 commit 0e7c282

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

llvm/test/Transforms/InstCombine/branch.ll

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,102 @@ t:
242242
f:
243243
ret i32 3
244244
}
245+
246+
define i32 @dom_true(i1 %cmp) {
247+
; CHECK-LABEL: @dom_true(
248+
; CHECK-NEXT: br i1 [[CMP:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
249+
; CHECK: if.then:
250+
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 [[CMP]] to i32
251+
; CHECK-NEXT: ret i32 [[ZEXT]]
252+
; CHECK: if.else:
253+
; CHECK-NEXT: ret i32 0
254+
;
255+
br i1 %cmp, label %if.then, label %if.else
256+
257+
if.then:
258+
%zext = zext i1 %cmp to i32
259+
ret i32 %zext
260+
261+
if.else:
262+
ret i32 0
263+
}
264+
265+
define i32 @dom_false(i1 %cmp) {
266+
; CHECK-LABEL: @dom_false(
267+
; CHECK-NEXT: br i1 [[CMP:%.*]], label [[IF_ELSE:%.*]], label [[IF_THEN:%.*]]
268+
; CHECK: if.then:
269+
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 [[CMP]] to i32
270+
; CHECK-NEXT: ret i32 [[ZEXT]]
271+
; CHECK: if.else:
272+
; CHECK-NEXT: ret i32 0
273+
;
274+
br i1 %cmp, label %if.else, label %if.then
275+
276+
if.then:
277+
%zext = zext i1 %cmp to i32
278+
ret i32 %zext
279+
280+
if.else:
281+
ret i32 0
282+
}
283+
284+
define i32 @dom_true_phi(i1 %cmp) {
285+
; CHECK-LABEL: @dom_true_phi(
286+
; CHECK-NEXT: br i1 [[CMP:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
287+
; CHECK: if.then:
288+
; CHECK-NEXT: br label [[IF_END:%.*]]
289+
; CHECK: if.else:
290+
; CHECK-NEXT: br label [[IF_END]]
291+
; CHECK: if.end:
292+
; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ true, [[IF_THEN]] ], [ [[CMP]], [[IF_ELSE]] ]
293+
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 [[PHI]] to i32
294+
; CHECK-NEXT: ret i32 [[ZEXT]]
295+
;
296+
br i1 %cmp, label %if.then, label %if.else
297+
298+
if.then:
299+
br label %if.end
300+
301+
if.else:
302+
br label %if.end
303+
304+
if.end:
305+
%phi = phi i1 [ true, %if.then ], [ %cmp, %if.else ]
306+
%zext = zext i1 %phi to i32
307+
ret i32 %zext
308+
}
309+
310+
; Negative tests
311+
312+
define i32 @same_dest(i1 %cmp) {
313+
; CHECK-LABEL: @same_dest(
314+
; CHECK-NEXT: br i1 false, label [[IF_THEN:%.*]], label [[IF_THEN]]
315+
; CHECK: if.then:
316+
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 [[CMP:%.*]] to i32
317+
; CHECK-NEXT: ret i32 [[ZEXT]]
318+
;
319+
br i1 %cmp, label %if.then, label %if.then
320+
321+
if.then:
322+
%zext = zext i1 %cmp to i32
323+
ret i32 %zext
324+
}
325+
326+
define i32 @not_dom(i1 %cmp) {
327+
; CHECK-LABEL: @not_dom(
328+
; CHECK-NEXT: br i1 [[CMP:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
329+
; CHECK: if.then:
330+
; CHECK-NEXT: br label [[IF_ELSE]]
331+
; CHECK: if.else:
332+
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 [[CMP]] to i32
333+
; CHECK-NEXT: ret i32 [[ZEXT]]
334+
;
335+
br i1 %cmp, label %if.then, label %if.else
336+
337+
if.then:
338+
br label %if.else
339+
340+
if.else:
341+
%zext = zext i1 %cmp to i32
342+
ret i32 %zext
343+
}

0 commit comments

Comments
 (0)