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, 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 } 29