Bill Wendling | 2d2e786 | 2008-11-30 12:38:24 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | opt -instcombine -disable-output |
| 2 | ; PR3144 |
| 3 | |
| 4 | define fastcc i32 @func(i32 %length) nounwind { |
| 5 | entry: |
| 6 | %0 = icmp ne i32 %length, -1 ; <i1> [#uses=1] |
| 7 | %iftmp.13.0 = select i1 %0, i128 0, i128 200000000 ; <i128> [#uses=2] |
| 8 | %1 = sdiv i128 %iftmp.13.0, 10 ; <i128> [#uses=1] |
| 9 | br label %bb5 |
| 10 | |
| 11 | bb5: ; preds = %bb8, %entry |
| 12 | %v.0 = phi i128 [ 0, %entry ], [ %6, %bb8 ] ; <i128> [#uses=2] |
| 13 | %2 = icmp sgt i128 %v.0, %1 ; <i1> [#uses=1] |
| 14 | br i1 %2, label %overflow, label %bb7 |
| 15 | |
| 16 | bb7: ; preds = %bb5 |
| 17 | %3 = mul i128 %v.0, 10 ; <i128> [#uses=2] |
| 18 | %4 = sub i128 %iftmp.13.0, 0 ; <i128> [#uses=1] |
| 19 | %5 = icmp slt i128 %4, %3 ; <i1> [#uses=1] |
| 20 | br i1 %5, label %overflow, label %bb8 |
| 21 | |
| 22 | bb8: ; preds = %bb7 |
| 23 | %6 = add i128 0, %3 ; <i128> [#uses=1] |
| 24 | br label %bb5 |
| 25 | |
| 26 | overflow: ; preds = %bb7, %bb5 |
| 27 | ret i32 1 |
| 28 | } |