Duncan Sands | d0c6f3d | 2010-11-18 19:59:41 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -loop-unswitch |
| 2 | ; PR8622 |
| 3 | @g_38 = external global i32, align 4 |
| 4 | |
| 5 | define void @func_67(i32 %p_68.coerce) nounwind { |
| 6 | entry: |
| 7 | br i1 true, label %for.end12, label %bb.nph |
| 8 | |
| 9 | bb.nph: ; preds = %entry |
| 10 | %g_38.promoted = load i32* @g_38 |
| 11 | br label %for.body |
| 12 | |
| 13 | for.body: ; preds = %for.cond, %bb.nph |
| 14 | %tobool.i = icmp eq i32 %p_68.coerce, 1 |
| 15 | %xor4.i = xor i32 %p_68.coerce, 1 |
| 16 | %call1 = select i1 %tobool.i, i32 0, i32 %xor4.i |
| 17 | br label %for.cond |
| 18 | |
| 19 | for.cond: ; preds = %for.body |
| 20 | br i1 true, label %for.cond.for.end12_crit_edge, label %for.body |
| 21 | |
| 22 | for.cond.for.end12_crit_edge: ; preds = %for.cond |
| 23 | store i32 %call1, i32* @g_38 |
| 24 | br label %for.end12 |
| 25 | |
| 26 | for.end12: ; preds = %for.cond.for.end12_crit_edge, %entry |
| 27 | ret void |
| 28 | } |