diff --git a/src/writer/spirv/builder_if_test.cc b/src/writer/spirv/builder_if_test.cc
index d47fe24..6273bee 100644
--- a/src/writer/spirv/builder_if_test.cc
+++ b/src/writer/spirv/builder_if_test.cc
@@ -503,6 +503,40 @@
 )");
 }
 
+TEST_F(BuilderTest, IfElse_BothReturn) {
+  // if (true) {
+  //   return true;
+  // } else {
+  //   return true;
+  // }
+
+  auto* fn = Func("f", {}, ty.bool_(),
+                  {
+                      If(true,                 //
+                         Block(Return(true)),  //
+                         Else(Block(Return(true)))),
+                  });
+
+  spirv::Builder& b = Build();
+
+  EXPECT_TRUE(b.GenerateFunction(fn)) << b.error();
+  EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
+%1 = OpTypeFunction %2
+%5 = OpConstantTrue %2
+%9 = OpConstantNull %2
+)");
+  EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+            R"(OpSelectionMerge %6 None
+OpBranchConditional %5 %7 %8
+%7 = OpLabel
+OpReturnValue %5
+%8 = OpLabel
+OpReturnValue %5
+%6 = OpLabel
+OpReturnValue %9
+)");
+}
+
 TEST_F(BuilderTest, If_WithNestedBlockReturnValue) {
   // if (true) {
   //  {
diff --git a/src/writer/spirv/builder_switch_test.cc b/src/writer/spirv/builder_switch_test.cc
index 42d7de6..93e97a2 100644
--- a/src/writer/spirv/builder_switch_test.cc
+++ b/src/writer/spirv/builder_switch_test.cc
@@ -400,6 +400,52 @@
 )");
 }
 
+TEST_F(BuilderTest, Switch_AllReturn) {
+  // switch (1) {
+  //   case 1: {
+  //     return 1;
+  //   }
+  //   case 2: {
+  //     fallthrough;
+  //   }
+  //   default: {
+  //     return 3;
+  //   }
+  // }
+
+  auto* fn = Func("f", {}, ty.i32(),
+                  {
+                      Switch(1,                                    //
+                             Case(Expr(1), Block(Return(1))),      //
+                             Case(Expr(2), Block(Fallthrough())),  //
+                             DefaultCase(Block(Return(3)))),
+                  });
+
+  spirv::Builder& b = Build();
+
+  EXPECT_TRUE(b.GenerateFunction(fn)) << b.error();
+  EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "f"
+%2 = OpTypeInt 32 1
+%1 = OpTypeFunction %2
+%6 = OpConstant %2 1
+%10 = OpConstant %2 3
+%11 = OpConstantNull %2
+%3 = OpFunction %2 None %1
+%4 = OpLabel
+OpSelectionMerge %5 None
+OpSwitch %6 %7 1 %8 2 %9
+%8 = OpLabel
+OpReturnValue %6
+%9 = OpLabel
+OpBranch %7
+%7 = OpLabel
+OpReturnValue %10
+%5 = OpLabel
+OpReturnValue %11
+OpFunctionEnd
+)");
+}
+
 }  // namespace
 }  // namespace spirv
 }  // namespace writer
