LIC: %c = load i32* %mem Instructions (LIC->use_begin()) enumerated before fix: %1 = icmp eq i32 %c, 1 switch i32 %c, label %default.us [ ; First invocation of replaceUsesOfWith i32 1, label %inc.us ] %1 = icmp eq i32 %c, 1 %dec_res.us = sub i32 %var_val.us, 1 ; Where is %c here?? switch i32 1, label %default.us [ ; ? i32 1, label %inc.us ] %inc_res.us = add i32 %var_val.us, 1 ; ? switch i32 %c, label %second_switch.us [ i32 1, label %inc.us i32 2, label %dec.us ] %dec_res = sub i32 %var_val, 1 ; ? %inc_res = add i32 %var_val, 1 ; ? switch i32 %c, label %default [ i32 1, label %second_switch.inc_crit_edge ] switch i32 %c, label %second_switch [ i32 1, label %loop_begin.inc_crit_edge i32 2, label %dec ] %mem = alloca i32 ; ????