1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -disable-output 2*9880d681SAndroid Build Coastguard Worker; END. 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine void @test() { 5*9880d681SAndroid Build Coastguard Workerbb38.i: 6*9880d681SAndroid Build Coastguard Worker %varspec.0.i1014 = bitcast i64 123814269237067777 to i64 ; <i64> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker %locspec.0.i1015 = bitcast i32 1 to i32 ; <i32> [#uses=2] 8*9880d681SAndroid Build Coastguard Worker %tmp51391.i1018 = lshr i64 %varspec.0.i1014, 16 ; <i64> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker %tmp51392.i1019 = trunc i64 %tmp51391.i1018 to i32 ; <i32> [#uses=2] 10*9880d681SAndroid Build Coastguard Worker %tmp51392.mask.i1020 = lshr i32 %tmp51392.i1019, 29 ; <i32> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker %tmp7.i1021 = and i32 %tmp51392.mask.i1020, 1 ; <i32> [#uses=2] 12*9880d681SAndroid Build Coastguard Worker %tmp18.i1026 = lshr i32 %tmp51392.i1019, 31 ; <i32> [#uses=2] 13*9880d681SAndroid Build Coastguard Worker %tmp18.i1027 = trunc i32 %tmp18.i1026 to i8 ; <i8> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_false1148.i1653, label %bb377.i1259 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerbb377.i1259: ; preds = %bb38.i 17*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true541.i1317, label %cond_false1148.i1653 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workercond_true541.i1317: ; preds = %bb377.i1259 20*9880d681SAndroid Build Coastguard Worker %tmp545.i1318 = lshr i32 %locspec.0.i1015, 10 ; <i32> [#uses=1] 21*9880d681SAndroid Build Coastguard Worker %tmp550.i1319 = lshr i32 %locspec.0.i1015, 4 ; <i32> [#uses=1] 22*9880d681SAndroid Build Coastguard Worker %tmp550551.i1320 = and i32 %tmp550.i1319, 63 ; <i32> [#uses=1] 23*9880d681SAndroid Build Coastguard Worker %tmp553.i1321 = icmp ult i32 %tmp550551.i1320, 4 ; <i1> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %tmp558.i1322 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker %bothcond.i1326 = or i1 %tmp553.i1321, false ; <i1> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker %bothcond1.i1327 = or i1 %bothcond.i1326, false ; <i1> [#uses=1] 27*9880d681SAndroid Build Coastguard Worker %bothcond2.not.i1328 = or i1 %bothcond1.i1327, false ; <i1> [#uses=1] 28*9880d681SAndroid Build Coastguard Worker %bothcond3.i1329 = or i1 %bothcond2.not.i1328, %tmp558.i1322 ; <i1> [#uses=0] 29*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true583.i1333, label %cond_next592.i1337 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workercond_true583.i1333: ; preds = %cond_true541.i1317 32*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true586.i1335, label %cond_next592.i1337 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workercond_true586.i1335: ; preds = %cond_true583.i1333 35*9880d681SAndroid Build Coastguard Worker br label %cond_true.i 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workercond_next592.i1337: ; preds = %cond_true583.i1333, %cond_true541.i1317 38*9880d681SAndroid Build Coastguard Worker %mask_z.0.i1339 = phi i32 [ %tmp18.i1026, %cond_true541.i1317 ], [ 0, %cond_true583.i1333 ] ; <i32> [#uses=0] 39*9880d681SAndroid Build Coastguard Worker %tmp594.i1340 = and i32 %tmp545.i1318, 15 ; <i32> [#uses=0] 40*9880d681SAndroid Build Coastguard Worker br label %cond_true.i 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workercond_false1148.i1653: ; preds = %bb377.i1259, %bb38.i 43*9880d681SAndroid Build Coastguard Worker %tmp1150.i1654 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] 44*9880d681SAndroid Build Coastguard Worker %tmp1160.i1656 = icmp eq i8 %tmp18.i1027, 0 ; <i1> [#uses=1] 45*9880d681SAndroid Build Coastguard Worker %bothcond8.i1658 = or i1 %tmp1150.i1654, %tmp1160.i1656 ; <i1> [#uses=1] 46*9880d681SAndroid Build Coastguard Worker %bothcond9.i1659 = or i1 %bothcond8.i1658, false ; <i1> [#uses=0] 47*9880d681SAndroid Build Coastguard Worker br label %cond_true.i 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workercond_true.i: ; preds = %cond_false1148.i1653, %cond_next592.i1337, %cond_true586.i1335 50*9880d681SAndroid Build Coastguard Worker ret void 51*9880d681SAndroid Build Coastguard Worker} 52