blob: e2765e5f50e617dcb0c012fee6911882bb05190d [file] [log] [blame]
Dan Gohman3b205172012-01-05 23:58:56 +00001; RUN: opt < %s -simplifycfg -S | FileCheck %s
Chris Lattner6ff645b2009-01-19 23:03:13 +00002; PR3354
3; Do not merge bb1 into the entry block, it might trap.
4
5@G = extern_weak global i32
6
Dan Gohman3b205172012-01-05 23:58:56 +00007; CHECK: @test(
8; CHECK: br i1 %tmp25
9; CHECK: bb1:
10; CHECK: sdiv
11
Chris Lattner6ff645b2009-01-19 23:03:13 +000012define 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:
Bill Wendling47e208b2011-09-02 22:41:11 +000023 ret i32 927
Chris Lattner6ff645b2009-01-19 23:03:13 +000024}
25
Dan Gohman3b205172012-01-05 23:58:56 +000026; CHECK: @test2(
27; CHECK: br i1 %tmp34
28; CHECK: bb5:
29; CHECK: sdiv
30
Chris Lattner63bf29b2009-01-20 01:15:41 +000031define i32 @test2(i32 %tmp21, i32 %tmp24, i1 %tmp34) {
32 br i1 %tmp34, label %bb5, label %bb6
33
34bb5: ; preds = %bb4
Chris Lattner1c2ad9f2009-01-22 07:08:58 +000035 br i1 icmp sgt (i32 sdiv (i32 32767, i32 ptrtoint (i32* @G to i32)), i32 0), label %bb6, label %bb7
Chris Lattner63bf29b2009-01-20 01:15:41 +000036bb6:
37 ret i32 42
38bb7:
Bill Wendling47e208b2011-09-02 22:41:11 +000039 ret i32 927
Chris Lattner63bf29b2009-01-20 01:15:41 +000040}
41