-void "testbool"(int %A, int %B) {
- br label %Top
-Top:
- %D = add int %A, %B
- %E = sub int %D, -4
- %C = setle int %E, 0
- br bool %C, label %retlbl, label %loop
-
-loop:
- %F = add int %A, %B
- %G = sub int %D, -4
- %D = setle int %G, 0
- %E = xor bool %D, true
- br bool %E, label %loop, label %Top
-
-retlbl:
- ret void
-end
+define void @testbool(i32 %A, i32 %B) {
+ br label %Top
+
+Top: ; preds = %loop, %0
+ %D = add i32 %A, %B ; <i32> [#uses=2]
+ %E = sub i32 %D, -4 ; <i32> [#uses=1]
+ %C = icmp sle i32 %E, 0 ; <i1> [#uses=1]
+ br i1 %C, label %retlbl, label %loop
+
+loop: ; preds = %loop, %Top
+ %F = add i32 %A, %B ; <i32> [#uses=0]
+ %G = sub i32 %D, -4 ; <i32> [#uses=1]
+ %D.upgrd.1 = icmp sle i32 %G, 0 ; <i1> [#uses=1]
+ %E.upgrd.2 = xor i1 %D.upgrd.1, true ; <i1> [#uses=1]
+ br i1 %E.upgrd.2, label %loop, label %Top
+
+retlbl: ; preds = %Top
+ ret void
+}