1; RUN: opt < %s -simplifycfg -S | FileCheck %s
2; PR3354
3; Do not merge bb1 into the entry block, it might trap.
4
5@G = extern_weak global i32
6
7; CHECK-LABEL: @test(
8; CHECK: br i1 %tmp25
9; CHECK: bb1:
10; CHECK: sdiv
11
12define i32 @test(i32 %tmp21, i32 %tmp24) {
13	%tmp25 = icmp sle i32 %tmp21, %tmp24
14	br i1 %tmp25, label %bb2, label %bb1
15
16bb1:		; preds = %bb
17	%tmp26 = icmp sgt i32 sdiv (i32 -32768, i32 ptrtoint (i32* @G to i32)), 0
18	br i1 %tmp26, label %bb6, label %bb2
19bb2:
20	ret i32 42
21
22bb6:
23	ret i32 927
24}
25
26; CHECK-LABEL: @test2(
27; CHECK: br i1 %tmp34
28; CHECK: bb5:
29; CHECK: sdiv
30
31define i32 @test2(i32 %tmp21, i32 %tmp24, i1 %tmp34) {
32	br i1 %tmp34, label %bb5, label %bb6
33
34bb5:		; preds = %bb4
35	br i1 icmp sgt (i32 sdiv (i32 32767, i32 ptrtoint (i32* @G to i32)), i32 0), label %bb6, label %bb7
36bb6:
37	ret i32 42
38bb7:
39	ret i32 927
40}
41
42