1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 2*9880d681SAndroid Build Coastguard Worker; PR2775 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i32 @func_77(i8 zeroext %p_79) nounwind { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 (...) @func_43(i32 1) nounwind ; <i32> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1] 8*9880d681SAndroid Build Coastguard Worker br i1 %1, label %bb3, label %bb 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerbb: ; preds = %entry 11*9880d681SAndroid Build Coastguard Worker br label %bb3 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerbb3: ; preds = %bb, %entry 14*9880d681SAndroid Build Coastguard Worker %p_79_addr.0 = phi i8 [ 0, %bb ], [ %p_79, %entry ] ; <i8> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker %2 = zext i8 %p_79_addr.0 to i32 ; <i32> [#uses=2] 16*9880d681SAndroid Build Coastguard Worker %3 = zext i1 false to i32 ; <i32> [#uses=2] 17*9880d681SAndroid Build Coastguard Worker %4 = tail call i32 (...) @rshift_u_s(i32 1) nounwind ; <i32> [#uses=0] 18*9880d681SAndroid Build Coastguard Worker %5 = lshr i32 %2, %2 ; <i32> [#uses=3] 19*9880d681SAndroid Build Coastguard Worker %6 = icmp eq i32 0, 0 ; <i1> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker br i1 %6, label %bb6, label %bb9 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerbb6: ; preds = %bb3 23*9880d681SAndroid Build Coastguard Worker %7 = ashr i32 %5, %3 ; <i32> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %8 = icmp eq i32 %7, 0 ; <i1> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker %9 = select i1 %8, i32 %3, i32 0 ; <i32> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker %. = shl i32 %5, %9 ; <i32> [#uses=1] 27*9880d681SAndroid Build Coastguard Worker br label %bb9 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerbb9: ; preds = %bb6, %bb3 30*9880d681SAndroid Build Coastguard Worker %.0 = phi i32 [ %., %bb6 ], [ %5, %bb3 ] ; <i32> [#uses=0] 31*9880d681SAndroid Build Coastguard Worker br i1 false, label %return, label %bb10 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerbb10: ; preds = %bb9 34*9880d681SAndroid Build Coastguard Worker ret i32 undef 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %bb9 37*9880d681SAndroid Build Coastguard Worker ret i32 undef 38*9880d681SAndroid Build Coastguard Worker} 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workerdeclare i32 @func_43(...) 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerdeclare i32 @rshift_u_s(...) 43