Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -instcombine -disable-output |
Tanya Lattner | aa6f5c9 | 2008-03-09 08:16:40 +0000 | [diff] [blame] | 2 | ; END. |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 3 | |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 4 | define void @test() { |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 5 | bb38.i: |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 6 | %varspec.0.i1014 = bitcast i64 123814269237067777 to i64 ; <i64> [#uses=1] |
| 7 | %locspec.0.i1015 = bitcast i32 1 to i32 ; <i32> [#uses=2] |
| 8 | %tmp51391.i1018 = lshr i64 %varspec.0.i1014, 16 ; <i64> [#uses=1] |
| 9 | %tmp51392.i1019 = trunc i64 %tmp51391.i1018 to i32 ; <i32> [#uses=2] |
| 10 | %tmp51392.mask.i1020 = lshr i32 %tmp51392.i1019, 29 ; <i32> [#uses=1] |
| 11 | %tmp7.i1021 = and i32 %tmp51392.mask.i1020, 1 ; <i32> [#uses=2] |
| 12 | %tmp18.i1026 = lshr i32 %tmp51392.i1019, 31 ; <i32> [#uses=2] |
| 13 | %tmp18.i1027 = trunc i32 %tmp18.i1026 to i8 ; <i8> [#uses=1] |
| 14 | br i1 false, label %cond_false1148.i1653, label %bb377.i1259 |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 15 | |
| 16 | bb377.i1259: ; preds = %bb38.i |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 17 | br i1 false, label %cond_true541.i1317, label %cond_false1148.i1653 |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 18 | |
| 19 | cond_true541.i1317: ; preds = %bb377.i1259 |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 20 | %tmp545.i1318 = lshr i32 %locspec.0.i1015, 10 ; <i32> [#uses=1] |
| 21 | %tmp550.i1319 = lshr i32 %locspec.0.i1015, 4 ; <i32> [#uses=1] |
| 22 | %tmp550551.i1320 = and i32 %tmp550.i1319, 63 ; <i32> [#uses=1] |
| 23 | %tmp553.i1321 = icmp ult i32 %tmp550551.i1320, 4 ; <i1> [#uses=1] |
| 24 | %tmp558.i1322 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] |
| 25 | %bothcond.i1326 = or i1 %tmp553.i1321, false ; <i1> [#uses=1] |
| 26 | %bothcond1.i1327 = or i1 %bothcond.i1326, false ; <i1> [#uses=1] |
| 27 | %bothcond2.not.i1328 = or i1 %bothcond1.i1327, false ; <i1> [#uses=1] |
| 28 | %bothcond3.i1329 = or i1 %bothcond2.not.i1328, %tmp558.i1322 ; <i1> [#uses=0] |
| 29 | br i1 false, label %cond_true583.i1333, label %cond_next592.i1337 |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 30 | |
| 31 | cond_true583.i1333: ; preds = %cond_true541.i1317 |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 32 | br i1 false, label %cond_true586.i1335, label %cond_next592.i1337 |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 33 | |
| 34 | cond_true586.i1335: ; preds = %cond_true583.i1333 |
| 35 | br label %cond_true.i |
| 36 | |
| 37 | cond_next592.i1337: ; preds = %cond_true583.i1333, %cond_true541.i1317 |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 38 | %mask_z.0.i1339 = phi i32 [ %tmp18.i1026, %cond_true541.i1317 ], [ 0, %cond_true583.i1333 ] ; <i32> [#uses=0] |
| 39 | %tmp594.i1340 = and i32 %tmp545.i1318, 15 ; <i32> [#uses=0] |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 40 | br label %cond_true.i |
| 41 | |
| 42 | cond_false1148.i1653: ; preds = %bb377.i1259, %bb38.i |
Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 43 | %tmp1150.i1654 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] |
| 44 | %tmp1160.i1656 = icmp eq i8 %tmp18.i1027, 0 ; <i1> [#uses=1] |
| 45 | %bothcond8.i1658 = or i1 %tmp1150.i1654, %tmp1160.i1656 ; <i1> [#uses=1] |
| 46 | %bothcond9.i1659 = or i1 %bothcond8.i1658, false ; <i1> [#uses=0] |
Chris Lattner | 618ff2d | 2006-05-04 17:33:24 +0000 | [diff] [blame] | 47 | br label %cond_true.i |
| 48 | |
| 49 | cond_true.i: ; preds = %cond_false1148.i1653, %cond_next592.i1337, %cond_true586.i1335 |
| 50 | ret void |
| 51 | } |