[hlsl-writer] Support pre stream in if/else statements.

This CL updates the if and else statement support to output the pre
streams in the proper places.

Bug: tint:192
Change-Id: If217de7f838fc033823987e20ba7efc5cd6108ff
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/27781
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/writer/hlsl/generator_impl_if_test.cc b/src/writer/hlsl/generator_impl_if_test.cc
index df2a7d6..aa2c07a 100644
--- a/src/writer/hlsl/generator_impl_if_test.cc
+++ b/src/writer/hlsl/generator_impl_if_test.cc
@@ -62,8 +62,10 @@
   ASSERT_TRUE(gen().EmitStatement(out(), &i)) << gen().error();
   EXPECT_EQ(result(), R"(  if (cond) {
     return;
-  } else if (else_cond) {
-    return;
+  } else {
+    if (else_cond) {
+      return;
+    }
   }
 )");
 }
@@ -119,10 +121,12 @@
   ASSERT_TRUE(gen().EmitStatement(out(), &i)) << gen().error();
   EXPECT_EQ(result(), R"(  if (cond) {
     return;
-  } else if (else_cond) {
-    return;
   } else {
-    return;
+    if (else_cond) {
+      return;
+    } else {
+      return;
+    }
   }
 )");
 }