[WebAssembly] Fix CFG stackification of nested loops.
[oota-llvm.git] / test / CodeGen / WebAssembly / cfg-stackify.ll
index 205384e610266e5419f35218f1c4326325c0f79f..8ba6bcf61b2481ffa21d8204f32b228c7912247d 100644 (file)
@@ -272,3 +272,33 @@ exit:
   store volatile i32 4, i32* %p
   ret i32 0
 }
+
+; Test that nested loops are handled.
+
+declare void @bar()
+
+define void @test3(i32 %w)  {
+entry:
+  br i1 undef, label %outer.ph, label %exit
+
+outer.ph:
+  br label %outer
+
+outer:
+  %tobool = icmp eq i32 undef, 0
+  br i1 %tobool, label %inner, label %unreachable
+
+unreachable:
+  unreachable
+
+inner:
+  %c = icmp eq i32 undef, %w
+  br i1 %c, label %if.end, label %inner
+
+exit:
+  ret void
+
+if.end:
+  call void @bar()
+  br label %outer
+}