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