Skip to content

Commit 1623292

Browse files
committed
[InstCombine] Add test for #74242 (NFC)
1 parent ea66814 commit 1623292

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

llvm/test/Transforms/InstCombine/udiv-simplify.ll

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,29 @@ define <vscale x 1 x i32> @udiv_demanded3(<vscale x 1 x i32> %a) {
164164
%u = udiv <vscale x 1 x i32> %o, shufflevector (<vscale x 1 x i32> insertelement (<vscale x 1 x i32> poison, i32 12, i32 0), <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer)
165165
ret <vscale x 1 x i32> %u
166166
}
167+
168+
; PR74242
169+
define i32 @div_by_zero_or_one_from_dom_cond(i32 %a, i32 %b) {
170+
; CHECK-LABEL: @div_by_zero_or_one_from_dom_cond(
171+
; CHECK-NEXT: entry:
172+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i32 [[A:%.*]], 1
173+
; CHECK-NEXT: br i1 [[CMP]], label [[JOIN:%.*]], label [[ZERO_OR_ONE:%.*]]
174+
; CHECK: zero_or_one:
175+
; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[B:%.*]], [[A]]
176+
; CHECK-NEXT: br label [[JOIN]]
177+
; CHECK: join:
178+
; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[DIV]], [[ZERO_OR_ONE]] ], [ [[B]], [[ENTRY:%.*]] ]
179+
; CHECK-NEXT: ret i32 [[RES]]
180+
;
181+
entry:
182+
%cmp = icmp ugt i32 %a, 1
183+
br i1 %cmp, label %join, label %zero_or_one
184+
185+
zero_or_one:
186+
%div = udiv i32 %b, %a
187+
br label %join
188+
189+
join:
190+
%res = phi i32 [ %div, %zero_or_one ], [ %b, %entry ]
191+
ret i32 %res
192+
}

0 commit comments

Comments
 (0)